为什么 inet_ntoa 总是 returns 错误的 IP 地址(套接字编程公司)
Why inet_ntoa always returns false IP adresse (socket programming inc )
我有简单的 client/server 带套接字的应用程序,所以客户端使用服务器 ip 连接到服务器,我想 return 连接客户端的 ip inet_ntoa 但它总是returns 已连接客户端的假 ip。为什么 ?以及如何解决它。
我希望服务器return连接机器的真实ip稍后扫描开放端口
struct sockaddr_in addr_remote;
...
connfd = accept(sockfd, (SA*)&cli, &len);
...
printf( " Welcome %s " , inet_ntoa(addr_remote.sin_addr));
您使用 inet_ntoa
和 addr_remote
。 addr_remote
永远不会在您的代码中设置,因此内容有点不可预测。您可能打算在 accept
中使用 addr_remote
,但您在那里使用了 cli
。
我有简单的 client/server 带套接字的应用程序,所以客户端使用服务器 ip 连接到服务器,我想 return 连接客户端的 ip inet_ntoa 但它总是returns 已连接客户端的假 ip。为什么 ?以及如何解决它。
我希望服务器return连接机器的真实ip稍后扫描开放端口
struct sockaddr_in addr_remote;
...
connfd = accept(sockfd, (SA*)&cli, &len);
...
printf( " Welcome %s " , inet_ntoa(addr_remote.sin_addr));
您使用 inet_ntoa
和 addr_remote
。 addr_remote
永远不会在您的代码中设置,因此内容有点不可预测。您可能打算在 accept
中使用 addr_remote
,但您在那里使用了 cli
。