【发布时间】:2011-10-22 04:41:57
【问题描述】:
是否可以从sockaddr 获取客户端机器的IP 地址。
从客户端我是指用户连接到服务器的系统或浏览器。
我假设客户端在一些代理/路由器后面,并且没有直接连接到服务器。
【问题讨论】:
标签: c client-server
是否可以从sockaddr 获取客户端机器的IP 地址。
从客户端我是指用户连接到服务器的系统或浏览器。
我假设客户端在一些代理/路由器后面,并且没有直接连接到服务器。
【问题讨论】:
标签: c client-server
您可以获取服务器向其发送响应数据包的 IP 地址。通常这是客户端计算机的 IP 地址,但不一定是:
如果您需要客户端计算机的 IP 地址,客户端必须将其作为数据发送到服务器。请注意,不能保证您通过这种方式收到的地址是真实的。即使是真的,也不能保证是唯一的(很多企业网络使用的192.168.X.X系列中的地址保留供内部使用)。您也不太可能无法通过其内部地址连接到客户端。
【讨论】:
检查同一问题的答案(如果我正确理解您的问题)Getting IPV4 address from a sockaddr structure
socket.h 状态:
int accept (int socket, struct sockaddr *address,
socklen_t *address_len);
address:空指针或指向将返回连接套接字地址的 sockaddr 结构的指针。
【讨论】: