用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

php 获取客户端的ip地址程序代码

时间:2015-01-23  来源:西部数据  作者:西部数据

获取客户端IP地址我们最简单的办法就是直接使用REMOTE_ADDR但这种如果有代理IP就无法获取了,所以我们要使用HTTP_X_FORWARDED_FOR来获取,下面我来给大家介绍一个获取IP地址函数.

最简单的做法,代码如下:

  1. function getRealIpAddr() 
  2.   if (!emptyempty($_SERVER['HTTP_CLIENT_IP'])) 
  3.   { 
  4.     $ip=$_SERVER['HTTP_CLIENT_IP']; 
  5.   } 
  6.   elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])) 
  7.   //to check ip is pass from proxy 
  8.   { 
  9.     $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; 
  10.   } 
  11.   else 
  12.   { 
  13.     $ip=$_SERVER['REMOTE_ADDR']; 
  14.   } 
  15.   return $ip

这个我自己写的,代码如下:

  1. <?php 
  2. if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { 
  3.   $onlineip = getenv('HTTP_CLIENT_IP'); 
  4.  } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) { 
  5.   $onlineip = getenv('HTTP_X_FORWARDED_FOR'); 
  6.  } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) { 
  7.   $onlineip = getenv('REMOTE_ADDR'); 
  8.  } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) { 
  9.   $onlineip = $_SERVER['REMOTE_ADDR']; 
  10.  } 
  11. echo $onlineip
  12. ?> 

但感觉不怎么样,后来百度找到了一个,实例代码如下:

  1. function real_ip() { 
  2.  static $realip = NULL; 
  3.  
  4.  if ($realip !== NULL)  { 
  5.   return $realip
  6.  } 
  7.  
  8.  if (isset($_SERVER)) { 
  9.   if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
  10.    $arr = explode(','$_SERVER['HTTP_X_FORWARDED_FOR']); 
  11.  
  12.    /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */ 
  13.    foreach ($arr AS $ip) { 
  14.     $ip = trim($ip); 
  15.  
  16.     if ($ip != 'unknown') { 
  17.      $realip = $ip
  18.      break
  19.     } 
  20.    } 
  21.   } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { 
  22.    $realip = $_SERVER['HTTP_CLIENT_IP']; 
  23.   } else { 
  24.    if (isset($_SERVER['REMOTE_ADDR'])) { 
  25.     $realip = $_SERVER['REMOTE_ADDR']; 
  26.    } else { 
  27.     $realip = '0.0.0.0'
  28.    } 
  29.   } 
  30.  } else { 
  31.   if (getenv('HTTP_X_FORWARDED_FOR')) { 
  32.    $realip = getenv('HTTP_X_FORWARDED_FOR'); 
  33.   } elseif (getenv('HTTP_CLIENT_IP')) { 
  34.    $realip = getenv('HTTP_CLIENT_IP'); 
  35.   } else { 
  36.    $realip = getenv('REMOTE_ADDR'); 
  37.   } 
  38.  } 
  39.  
  40.  preg_match("/[d.]{7,15}/"$realip$onlineip); 
  41.  $realip = !emptyempty($onlineip[0]) ? $onlineip[0] : '0.0.0.0'
  42.  
  43.  return $realip
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门