获取访问者的用户本地IP


Get the users Local IP of the visitor

我们有一条与多个用户共享的互联网线路,当每个人访问互联网时,请求都通过相同的远程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地址。