在实际应用中,获取客户端IP地址的方法可能会因使用了反向代理软件(如Apache, Squid等)而无法直接获取到真实的客户端IP地址,这是因为服务器无法直接拿到客户端的IP,而服务器端应用也无法直接通过转发请求的地址返回给客户端,为了解决这个问题,通常需要从XForwardedFor
或XRealIP
这样的HTTP头中获取IP地址,这些头部是由反向代理软件设置的,包含了原始客户端的IP信息。

查询方法:
1、Windows系统:
打开命令提示符(CMD),输入ipconfig /all
并回车,在列出的信息中查找IP Address
项,这便是设备的IP地址。
2、Linux系统:
打开终端,输入ifconfig
命令,在eth0
或ethX
接口下查找inet
字段,后面的地址即为IPv4地址。
若要查询IPv6地址,可以使用ip 6 addr show
或ifconfig
命令配合grep指令,例如ifconfig | grep inet6
。
3、服务器端代码查询:
使用PHP代码$_SERVER['REMOTE_ADDR']
可以显示访问者的IP地址,$_SERVER['SERVER_ADDR']
则显示服务器的IP地址。

4、客户端代码查询:
在JavaScript中,可以通过fetch('https://api.ipify.org?format=json')
发送请求到ipify服务来获取公网IP地址。
在Python中,可以使用第三方库如requests
来获取公网IP,例如requests.get('https://api.ipify.org').text
。
5、公网IP查询服务:
访问诸如https://api.ipify.org
或https://ipinfo.io/ip
之类的在线服务可以获取到公网IP地址。
6、内网IP验证:
若需要验证IP是否属于内网,可以使用https://ipinfo.io/
等服务提供的API,并检查其返回的JSON数据中的ip
字段是否与当前网络接口的默认网关相符。
注意事项:

1、当使用内网IP时,从一台计算机到另一台计算机的通信仅限于本地网络内,不会通过互联网。
2、公网IP是全球唯一的,用于在互联网中标识设备的位置,所有数据包都需要通过此地址进行路由。
3、如果计算机位于NAT背后,它可能只能看到私有(内网)IP地址,而非公网IP。
4、在使用DNS服务时,由于DNS缓存和动态DNS更新,所查询到的IP地址可能不是实时的。
5、客户端IP地址可能因为使用了代理或VPN服务而显示为代理服务器的IP,而非实际用户设备的IP。
理解了服务器和客户端IP地址的基础知识后,可以更深入地探索相关的网络配置和安全策略,了解如何为服务器配置固定的IP地址,或者如何在网络中设置NAT和防火墙规则以保护网络不受未授权访问,掌握这些知识对于网络安全管理和维护来说至关重要。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复