接受后如何确定正在使用的IP地址

How to determine which IP address is in use after accept?

本文关键字:IP 地址 何确定      更新时间:2023-10-16

如果我写了一个绑定到通配符地址(INADDR_ANY)的服务器,如何确定客户端连接到哪个IP地址?

我尝试了下面的代码,当一个成功的接受调用后,但它只是返回0.0.0.0。

inet_ntop(AF_INET, &server_address.sin_addr, s, sizeof(s));

正如在C语言中如何确定连接到INADDR_ANY侦听器套接字的客户端使用的IP中所述,使用getsockname,它会给出连接绑定到的套接字(在本地级别)。

accept系统调用的地址类型为struct sockaddr_in或struct sockaddr_in6。

客户端地址将存储在那里。

您可以使用inet_ntoa或inet_ntop获取