我们有一个与多个用户共享的互联网线路,当每个人都访问互联网时,请求通过相同的远程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";
}
答案 0 :(得分:2)
由于您在本地网络中共享相同的公共IP,因此您的路由器使用称为NAT的技术,因此您可以共享所有相同的IP,因为它可以是一个或多个。请求和本地IP之间的关系保存在充当网关的路由器的本地表中。
您无法查看NAT执行路由器背后的本地IP地址。这不是NAT问题,它是Internet寻址和数据包标头限制,与您可以处理的配置无关。
如果这是一个公司问题,您可以将服务器放在本地网络中,在这种情况下,$ _SERVER [' REMOTE_ADDR']值将是您要查找的本地IP地址