Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取访问者的用户本地IP_Php_Apache - Fatal编程技术网

Php 获取访问者的用户本地IP

Php 获取访问者的用户本地IP,php,apache,Php,Apache,我们有一条与多个用户共享的互联网线路,当每个人都访问互联网时,请求通过相同的远程IP发送。我需要找出请求来自哪个本地IP。 有人能帮我查一下本地IP吗 我已经写了下面的代码,但它没有给出例外的结果 谢谢 $ip = getenv('HTTP_CLIENT_IP'); var_dump($ip); var_Dump($_SERVER["X-FORWARDED-FOR"]); if (getenv('HTTP_X_FORWARDED_FOR')) { $pipaddress

我们有一条与多个用户共享的互联网线路,当每个人都访问互联网时,请求通过相同的远程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寻址和数据包头限制,与您可以处理的配置无关


如果这是公司的问题,您可以将服务器放置在本地网络中,在这种情况下,$\u server['REMOTE\u ADDR']值将是您要查找的本地IP地址。

路由器是否实际公开了内部IP?我的猜测是:不,那你就无能为力了。无论如何,这是不可信的。