是否可以从sockaddr
获取客户端计算机的IP地址。
从客户端我指的是用户连接到服务器的系统或浏览器。
我认为客户端位于一些代理/路由器后面,并没有直接连接到服务器。
答案 0 :(得分:3)
您可以获取服务器将响应数据包发送到的IP地址。这通常是客户端计算机的IP地址,但不一定是:
如果您需要客户端计算机的IP地址,客户端必须将其作为数据发送到服务器。请注意,我们无法保证您以这种方式收到的地址是真实的。即使它是真实的,也不能保证是唯一的(许多公司网络使用保留供内部使用的192.168.X.X系列中的地址)。您也很可能无法通过其内部地址连接到客户端。
答案 1 :(得分:0)
检查同一问题的答案(如果我理解你的问题)Getting IPV4 address from a sockaddr structure
socket.h州:
int accept (int socket, struct sockaddr *address,
socklen_t *address_len);
address:空指针或指向sockaddr结构的指针,其中将返回连接套接字的地址。