我们有一条与多个用户共享的互联网线路,当每个人访问互联网时,请求都通过相同的远程IP发送。我需要找出请求来自哪个本地IP。谁能帮我查一下本地IP地址?
我已经写了下面的代码,但它没有给出预期的结果。
谢谢。
$ip = getenv('HTTP_CLIENT_IP');
var_dump($ip);
var_Dump($_SERVER["X-FORWARDED-FOR"]);
if (getenv('HTTP_X_FORWARDED_FOR')) {
$pipaddress = getenv('HTTP_X_FORWARDED_FOR');
$ipaddress = getenv('REMOTE_ADDR');
echo "Your Proxy IP address is : ".$pipaddress. "(via $ipaddress)" ;
} else {
$ipaddress = getenv('REMOTE_ADDR');
echo "Your IP address is : $ipaddress";
}
由于你们都在本地网络中共享相同的公共IP,您的路由器使用一种称为NAT的技术,因此你们可以共享所有相同的IP,因为它可以是一个,也可以是几个。请求与本地ip的关系保存在作为网关的路由器的本地表中。
你不能查看NAT路由器后面的本地ip地址。这不是NAT问题,这是Internet寻址和包头限制,与您可以处理的配置无关。
如果这是一个公司问题,你可以把服务器放在你的本地网络中,在这种情况下,$_SERVER['REMOTE_ADDR']值将是你正在寻找的本地IP地址。