为什么 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_ntoaaddr_remoteaddr_remote 永远不会在您的代码中设置,因此内容有点不可预测。您可能打算在 accept 中使用 addr_remote,但您在那里使用了 cli