获取C端口客户端的IP地址

获取C端口客户端的IP地址

问题描述:

如何获取我的服务器所连接的客户端的IP地址? 这是我如何接受传入的客户:获取C端口客户端的IP地址

newsockfd = accept(sockfd, (struct sockaddr*)&clt_addr, &addrlen); 

我试过如下:

printf("ip is: %s\n", inet_ntoa(clt_addr.sin_addr)); 

但我正在逐渐127.0.0.1这是不是我的IP地址。可以用我的本地主机来测试我的客户端和服务器吗?

+2

就localhost而言,127.0.0.1是你的ip地址。 – user3791372

+0

所以如果我不使用本地主机,我会得到一个实际的IP地址? – coder4lyf

+0

@Rachelle是的,如果你的应用程序托管在网络上,并且有人访问它,你会得到实际的IP。但是,现在您通过本地主机访问它。您的IP将是127.0.0.1 –

难道它与我使用本地主机来测试我的客户端和服务器?

是的。如果您连接到本地主机上的服务器,客户端也将是本地主机。这个连接不是通过Internet发生的,没有涉及网络硬件,客户端数据包将来自本地主机。这被称为loopback并且完全以软件形式出现。

如果客户端使用服务器的外部IP地址连接到服务器,则它必须通过外部路由进行连接,因此需要可路由的IP地址。例如,我可以连接到本地主机上的服务器,但我无法使用可路由的IP地址,因为我的路由器阻止了传入的连接。