Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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 - Fatal编程技术网

如何使用php函数获取代理ip?

如何使用php函数获取代理ip?,php,Php,我有两个VP,在我的vps_ip1上构建sshd,在本地机器上的firefox中安装autoproxy插件,用vps_ip2绑定一些_域,并将read.php放在vps_ip2上 <?php echo $_SERVER['REMOTE_ADDR']; echo "<br>"; echo $_SERVER['REQUEST_TIME']; echo "<br>"; echo $_SERVER['HTTP_X_FORWARDED_FOR']; echo "&

我有两个VP,在我的vps_ip1上构建sshd,在本地机器上的firefox中安装autoproxy插件,用vps_ip2绑定一些_域,并将read.php放在vps_ip2上

<?php
echo  $_SERVER['REMOTE_ADDR'];
echo  "<br>";
echo  $_SERVER['REQUEST_TIME'];
echo  "<br>";
echo  $_SERVER['HTTP_X_FORWARDED_FOR'];
echo  "<br>";
echo  $_SERVER['HTTP_CLIENT_IP'];
?>  
$\u服务器['HTTP\u X\u FORWARDED\u']
$\u服务器['HTTP\u CLIENT\u IP']
对我的ip0一无所知。
如何使用php函数获取本地ip0?


   <?php
   if (!empty($_SERVER["HTTP_CLIENT_IP"]))
   {
    //check for ip from share internet
    $ip = $_SERVER["HTTP_CLIENT_IP"];
   }
   elseif (!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
   {
    // Check for the Proxy User
    $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
   }
   else
   {
    $ip = $_SERVER["REMOTE_ADDR"];
   }

   // This will print user's real IP Address
   // does't matter if user using proxy or not.
   echo $ip;

   ?>
您需要了解它们的功能以及它们的工作方式。特别是阅读关于

简言之,根据代理服务器的配置,它可能不会提供原始IP,以保护客户端的匿名性

HTTP_X_FORWARDED_只保存代理服务器自愿提供的任何数据。可能没什么。它可能是客户端的公共IP。它可能是客户端的本地(lan)IP。它可能是一个以逗号分隔的列表,包含或不包含客户端的前置/链接代理。它甚至可能是任何欺骗的ip

最后,您不能只信任任何代理服务器以及它在HTTP_X_FORWARDED_FOR header中为您提供的内容,或者即使它为您提供了任何内容


因此,现在您需要检查安装在vps_ip1上的代理服务器并禁用匿名功能。

您必须使用命令查看
$\u server
数组的内容

 print_r($_SERVER);
并找出哪个变量使用代理传输本地IP

根据代理服务器的不同,它可以是以下任意一种可能性:
HTTP\u-FORWARDED
HTTP\u-FORWARDED
HTTP\u-FORWARDED
HTTP\u-FORWARDED
HTTP\u-CLIENT\u-IP
HTTP\u-FORWARDED
,或其他任何可能性

有关检索IP的快速方法,请参见以下问题:

结果仍然是我的vps_ip1,而不是我的本地ip0和你的代码。这确实很难理解你目前的问题。请尝试在var_dump(get_defined_vars())中查找ip地址,然后告诉它始终查看所需的ip地址,以便它始终可以找到/记录它。
 print_r($_SERVER);