已知socket套接字,能不能知道客户端的ip地址?

苏克贝塔03 2010-08-05 11:41:32
已知socket套接字,能不能知道客户端的ip地址?
我看书上是accept来获得客户端的地址,但是我现在只有AcceptSocket,请问能得到ip地址吗?
AcceptSocket[i] = accept(m_sockSer,(SOCKADDR *)&clientaddr, &nLength);
user.userip=inet_ntoa(clientaddr.sin_addr);
...全文
127 点赞 收藏 12
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
nipk2009 2010-08-06
可以的嘛 楼上都给了很多了
回复
Eleven 2010-08-06
[Quote=引用楼主 jichao1010 的回复:]
已知socket套接字,能不能知道客户端的ip地址?
我看书上是accept来获得客户端的地址,但是我现在只有AcceptSocket,请问能得到ip地址吗?
AcceptSocket[i] = accept(m_sockSer,(SOCKADDR *)&clientaddr, &nLength);
user.userip=inet_ntoa(clientaddr.sin_a……
[/Quote]
囧。你的accept里第二个参数不就保存的客户端的地址信息吗???
回复
zrong 2010-08-06
inet_ntoa(client.sin_addr);
可以得到
回复
周药师 2010-08-06

inet_ntoa(client.sin_addr)
回复
m_tornado 2010-08-06
accepte里参数第二个clientaddr就已经保存了该ip信息了
回复
精锐掷矛手 2010-08-06

sockaddr_in clientaddr;
int bufsize =sizeof(clientaddr);

::getpeername(AcceptSocket,(SOCKADDR *)&clientaddr,&bufsize);

user.userip=inet_ntoa(clientaddr.sin_addr);

回复
hzy694358 2010-08-06
inet_ntoa(clientaddr.sin_addr)
-----------------------------------
这个就可以得到了,
只要客户端连上,这个就可以得到IP字串了
回复
苏克贝塔03 2010-08-06
嗯。。
回复
苏克贝塔03 2010-08-06
咋得到啊?
getpeername()我试了一下不行啊,可能是我不会弄
知道的能说一下么
回复
gengzhen_2005 2010-08-05
可以得到的
回复
hastings 2010-08-05
getpeername?
回复
healer_kx 2010-08-05
getpeername()
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告