解决马上给分:多网段内取远程IP不正确!

xiaoxiaobai 2006-05-13 10:53:53
客户机IP:192.168.1.3, 网关:192.168.0.1
本机IP:192.168.0.3,网关:192.168.0.1

本机做为Server,当客户机连接成功以后,收发信息都正常了,使用 getpeername 得到的IP却是192.168.0.1 !!!

怎么才能正确获得一个连接成功以后的Socket的远程IP地址?

不要使用GetHostByName或者让客户机发IP上来,只是想“正确获得一个已经连接成功的Socket的远程IP”!
...全文
117 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
WinEggDrop 2006-05-14
  • 打赏
  • 举报
回复
SOCKADDR_IN client;
int nSize = sizeof(client);
char ClientIP[32] = {0};
SOCKET AcceptSocket = WSAAccept(ListenSocket, (SOCKADDR *)&client, &nSize,NULL,0);

ZeroMemory(ClientIP,sizeof(ClientIP));
strncpy(ClientIP,inet_ntoa(client.sin_addr),sizeof(ClientIP) - 1);

上面的ClientIP就是连接了上来客户的连接,accept()那连接后就能得到.

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧