CSocket Server获取客户端IP地址

时间:2009-12-13 14:23:16

标签: c++ sockets

如何在尝试连接服务器时获取客户端的IP地址? 我正在使用CSocket类。

1 个答案:

答案 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 
);