PHP获取IP地址的多种方法

发布时间:2019-10-25编辑:脚本学堂
分享下Php编程中取得客户端IP地址的几种方法,包括获取代理IP地址等,有需要的朋友参考下。

方法一,根据用户的IP地址进行转向。
 

复制代码 代码示例:
<?php
function GetIP()
{
if(!empty($_SERVER["HTTP_CLIENT_IP"]))
   $cip = $_SERVER["HTTP_CLIENT_IP"];
else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
   $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if(!empty($_SERVER["REMOTE_ADDR"]))
   $cip = $_SERVER["REMOTE_ADDR"];
else
   $cip = "无法获取!";
return $cip;
}
echo "<br>";
?>

方法二,不同情况下IP地址的获取方法
 

复制代码 代码示例:
<?php
error_reporting (E_ERROR | E_WARNING | E_PARSE);
if($_SERVER["HTTP_X_FORWARDED_FOR"])
{                                             
       $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
     
}                                             
elseif($_SERVER["HTTP_CLIENT_IP"])   
{                                             
       $ip = $_SERVER["HTTP_CLIENT_IP"];
        
}                                             
elseif ($_SERVER["REMOTE_ADDR"])      
{                                             
       $ip = $_SERVER["REMOTE_ADDR"]; 
           
}                                             
elseif (getenv("HTTP_X_FORWARDED_FOR"))         
{                                             
       $ip = getenv("HTTP_X_FORWARDED_FOR"); 
              
}                                             
elseif (getenv("HTTP_CLIENT_IP"))               
{                                             
       $ip = getenv("HTTP_CLIENT_IP"); 
                    
}         
                                
elseif (getenv("REMOTE_ADDR"))                  
{                                             
       $ip = getenv("REMOTE_ADDR");
                       
}      
                                   
else                                          
{                                             
       $ip = "Unknown";   
                                
}                                             
echo "IP地址是:".$ip."<br>";                           
?>

方法三(最简单):
 

复制代码 代码示例:
<?php
$iipp = $_SERVER["REMOTE_ADDR"];
echo $iipp;
echo "<br>";
?>

方法四:
 

复制代码 代码示例:
<?php
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
echo $user_IP."<br>";
?>

方法五,获取客户端的真实IP地址。
 

复制代码 代码示例:
<?php
function get_real_ip()
{
       $ip=false;
       if(!empty($_SERVER["HTTP_CLIENT_IP"]))
       {
            $ip = $_SERVER["HTTP_CLIENT_IP"];
       }
       if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
       {
            $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
            if ($ip)
            {
                     array_unshift($ips, $ip); $ip = FALSE;
            }
            for ($i = 0; $i < count($ips); $i++)
            {
                     if (!eregi ("^(10|172.16|192.168).", $ips[$i]))
                     {
                               $ip = $ips[$i];
                               break;
                     }
            }
       }
       return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
echo get_real_ip();
echo "<br>";
?>

方法六,通过环境变量取得客户端的IP地址。
 

复制代码 代码示例:
<?php
if(getenv('HTTP_CLIENT_IP'))
{
       $onlineip = getenv('HTTP_CLIENT_IP');
}
elseif(getenv('HTTP_X_FORWARDED_FOR'))
{
       $onlineip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif(getenv('REMOTE_ADDR'))
{
       $onlineip = getenv('REMOTE_ADDR');
}
else
{
       $onlineip = $_SERVER['REMOTE_ADDR'];
}
echo $onlineip;
echo "<br>";
?>