嗨,伙计们,怎么用php获取我的用户的wan ip地址...
发布于 2009-10-28 19:36:47
在典型的LAN设置中,整个LAN通过路由器连接到internet,LAN上的每台计算机将共享一个“外部”的WAN IP (分配给路由器),但每台计算机都有一个“内部”的LAN IP (通常为192.168..)。
在这种情况下,该LAN上任何计算机发出的所有外部请求看起来都来自同一个WAN IP。路由器本身将知道请求属于LAN上的哪台计算机,因此PHP无法检测LAN IP,只能检测WAN IP (通过$_SERVER‘’REMOTE_ADDR‘元素)
如果请求是内部的(比如对同一LAN上的HTTP服务器的请求),则$_ server‘’REMOTE_ADDR‘元素将保留发出请求的计算机的LAN IP。
简而言之,服务器只知道发送请求的设备的IP,而不管该IP是否属于LAN、WAN或任何其他类型的网络。
发布于 2013-07-22 22:39:21
我发现最好的选择是使用最新的WhatIsMyIPAddress接口http://bot.whatismyipaddress.com,建议每5分钟查询一次[Source]。它以明文形式返回WAN IP,因此使用
file_get_contents("http://bot.whatismyipaddress.com"); 无需任何后期解析即可轻松获取IP地址。
发布于 2009-10-29 02:04:13
$_SERVER‘’REMOTE_ADDR‘将为您提供发出HTTP请求的IP地址。如果你指的是“用户”作为浏览你网站的人,那么这很可能就是你要找的。
如果您指的是‘执行用户’拥有的WAN IP,您可以使用以下行来获取服务器的WAN IP
$wanIP=file_get_contents("http://www.whatismyip.com/automation/n09230945.asp");
请记住,这将建立一个域名系统和whatismyip.com的超文本传输协议连接,这将减慢您的站点。
https://stackoverflow.com/questions/1636695
复制相似问题