PHP获取IP的多种方式解析

本文介绍了六种不同的PHP获取客户端IP地址的方法,包括通过$_SERVER变量和getenv函数检查HTTP头信息及REMOTE_ADDR等,适用于不同场景下精确获取用户的真实IP。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 PHP获取IP的多种方式解析 :

PHP获取IP方法一:

  1. <?php
  2. echo "<br>";
  3. ?>
  4. <?php
  5.   
  6. function GetIP()
  7. {
  8. if(!empty($_SERVER["HTTP_CLIENT_IP"]))
  9.     $cip = $_SERVER["HTTP_CLIENT_IP"];
  10. else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
  11.     $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
  12. else if(!empty($_SERVER["REMOTE_ADDR"]))
  13.     $cip = $_SERVER["REMOTE_ADDR"];
  14. else
  15.     $cip = "无法获取!";
  16. return $cip;
  17. }
  18. echo "<br>";
  19. ?>
  20. PHP获取IP方法二:

     

    1. <?php
    2. echo "<br>";
    3. ?>
    4. <?
    5. error_reporting (E_ERROR | E_WARNING | E_PARSE);
    6. if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])
    7. {                                              
    8.         $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
    9.       
    10. }                                              
    11. elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])    
    12. {                                              
    13.         $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
    14.          
    15. }                                              
    16. elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"])       
    17. {                                              
    18.         $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];  
    19.             
    20. }                                              
    21. elseif (getenv("HTTP_X_FORWARDED_FOR"))          
    22. {                                              
    23.         $ip = getenv("HTTP_X_FORWARDED_FOR");  
    24.                
    25. }                                              
    26. elseif (getenv("HTTP_CLIENT_IP"))                
    27. {                                              
    28.         $ip = getenv("HTTP_CLIENT_IP");  
    29.                      
    30. }          
    31.                                  
    32. elseif (getenv("REMOTE_ADDR"))                   
    33. {                                              
    34.         $ip = getenv("REMOTE_ADDR");
    35.                         
    36. }       
    37.                                     
    38. else                                           
    39. {                                              
    40.         $ip = "Unknown";    
    41.                                  
    42. }                                              
    43. echo "你的IP地址是:".$ip."<br>";                            
    44. ?>
    PHP获取IP方法三:

     

     

    1. <?php
    2. echo "<br>";
    3. ?>
    4. <?
    5. $iipp = $_SERVER["REMOTE_ADDR"];
    6. echo $iipp;
    7. echo "<br>";
    8. ?>

    PHP获取IP方法四:

     

     

     

    1. <?php
    2. echo "<br>";
    3. ?>
    4. <?php
    5. $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
    6. $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
    7. echo $user_IP."<br>";
    8. ?>
    PHP获取IP方法五:

     

     

     

     

    1. <?php
    2. echo "<br>";
    3. ?>
    4. <?
    5. function get_real_ip()
    6. {
    7.         $ip=false;
    8.         if(!empty($_SERVER["HTTP_CLIENT_IP"]))
    9.         {
    10.              $ip = $_SERVER["HTTP_CLIENT_IP"];
    11.         }
    12.         if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    13.         {
    14.              $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
    15.              if ($ip)
    16.              {
    17.                       array_unshift($ips, $ip); $ip = FALSE;
    18.              }
    19.              for ($i = 0; $i < count($ips); $i++)
    20.              {
    21.                       if (!eregi ("^(10|172/.16|192/.168)/.", $ips[$i]))
    22.                       {
    23.                                 $ip = $ips[$i];
    24.                                 break;
    25.                       }
    26.              }
    27.         }
    28.         return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
    29. }
    30. echo get_real_ip();
    31. echo "<br>";
    32. ?>
    PHP获取IP方法六:

     

     

     

     

     

    1. <?php
    2. echo "<br>";
    3. ?>
    4. <?
    5. if(getenv('HTTP_CLIENT_IP'))
    6. {
    7.         $onlineip = getenv('HTTP_CLIENT_IP');
    8. }
    9. elseif(getenv('HTTP_X_FORWARDED_FOR'))
    10. {
    11.         $onlineip = getenv('HTTP_X_FORWARDED_FOR');
    12. }
    13. elseif(getenv('REMOTE_ADDR'))
    14. {
    15.         $onlineip = getenv('REMOTE_ADDR');
    16. }
    17. else
    18. {
    19.         $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
    20. }
    21. echo $onlineip;
    22. echo "<br>";
    23. ?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值