当前位置:首页 > PHP教程 > php应用 > 列表

PHP 获取ip地址代码汇总

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-08 10:50:52 浏览: 评论:0 

本文给大家汇总介绍了6种php获取IP的方法,有简单有复杂,大家根据自己的项目需求,自由选择吧。

代码一:

  1. function getip() { 
  2.   static $ip = ''; 
  3.   $ip = $_SERVER['REMOTE_ADDR']; 
  4.   if(isset($_SERVER['HTTP_CDN_SRC_IP'])) { 
  5.     $ip = $_SERVER['HTTP_CDN_SRC_IP']; 
  6.   } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) { 
  7.     $ip = $_SERVER['HTTP_CLIENT_IP']; 
  8.   } elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) { 
  9.     foreach ($matches[0] AS $xip) { 
  10.       if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) { 
  11.         $ip = $xip; 
  12.         break; 
  13.       } 
  14.     } 
  15.   } 
  16.   return $ip; 
  17. } 

代码二:

  1. <?php 
  2. error_reporting (E_ERROR | E_WARNING | E_PARSE); 
  3. if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){ 
  4. $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]; 
  5. } 
  6. elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){ 
  7. $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"]; 
  8. } 
  9. elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){ 
  10. $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"]; 
  11. } 
  12. elseif (getenv("HTTP_X_FORWARDED_FOR")){ 
  13. $ip = getenv("HTTP_X_FORWARDED_FOR"); 
  14. } 
  15. elseif (getenv("HTTP_CLIENT_IP")){ 
  16. $ip = getenv("HTTP_CLIENT_IP"); 
  17. } 
  18. elseif (getenv("REMOTE_ADDR")){ 
  19. $ip = getenv("REMOTE_ADDR"); 
  20. } 
  21. else{ 
  22. $ip = "Unknown"; 
  23. } 
  24. echo $ip; 
  25. ?> 

方法三:

  1. <?php 
  2. $iipp = $_SERVER["REMOTE_ADDR"]; 
  3. echo $iipp ; 
  4. ?> 

方法四:

  1. <?php 
  2. $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; 
  3. $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"]; 
  4. echo $user_IP 
  5. ?> 

方法五:

  1. <?php 
  2. function get_real_ip() 
  3. { 
  4. $ip=false; 
  5. if(!emptyempty($_SERVER["HTTP_CLIENT_IP"])){ 
  6.  $ip = $_SERVER["HTTP_CLIENT_IP"]; 
  7. } 
  8. if (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])){ 
  9.  $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']); 
  10.  if($ip){ 
  11.   array_unshift($ips, $ip); $ip = FALSE; 
  12.  } 
  13.  for($i = 0; $i < count($ips); $i++){ 
  14.   if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])){ 
  15.   $ip = $ips[$i]; 
  16.   break; 
  17.   } 
  18.  } 
  19. } 
  20. return($ip ? $ip : $_SERVER['REMOTE_ADDR']); 
  21. } 
  22. echo get_real_ip(); 
  23. ?> 

方法六:

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

Tags: PHP获取ip地址

分享到: