如何在尝试连接服务器时获取客户端的IP地址? 我正在使用CSocket类。
答案 0 :(得分:3)
void getPeer(unsigned short& port,std :: string& peer);
返回有关遥控器的信息 插座的一侧。 port是端口 在哪个连接,和 peer是套接字所在的主机 已连接。同行是一个 完全合格的域名(如果是IP 地址可以通过 gethostbyaddr(2)或字符串化 如果没有加点IP地址。
来自here。
getPeer函数将返回域名或远程对等体的IP地址,具体取决于它可以找到的内容。
根据操作系统或库,似乎有两种不同的CSocket定义。如果您正在使用CSocket的MFC定义,那么如果您使用的是IP6,则所需的功能实际为getPeerName()
或getPeerNameEx()
。来自here:
BOOL GetPeerName(
CString& rPeerAddress,
UINT& rPeerPort
);
BOOL GetPeerName(
SOCKADDR* lpSockAddr,
int* lpSockAddrLen
);
来自here:
BOOL GetPeerNameEx(
CString& rPeerAddress,
UINT& rPeerPort
);