首頁 >後端開發 >php教程 >深入解析PHP取得客戶端IP的方法

深入解析PHP取得客戶端IP的方法

WBOY
WBOY原創
2016-07-25 08:57:151112瀏覽
  1. function getip() {
  2. $unknown = 'unknown';
  3. if ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], $unknown) ) {
  4. $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif
  5. ( isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], $unknown) ) {
  6. $ip = $_SERVER['REMOTE_ADDR'];
  7. }
  8. /* 处理多层代理的情况 或者使用正则方式:$ip = preg_match("/[/d/.]{7,15}/", $ip, $matches) ? $matches[0] : $unknown; */
  9. if (false !== strpos($ip, ','))
  10. $ip = reset(explode(',', $ip)); return $ip;
  11. }
复制代码

注意: 使用函数getenv(’HTTP_X_FORWARDED_FOR’)或getenv(’REMOTE_ADDR’) 也可以如上代码一样取得同样的效果。 不过,特别要留意的是,getenv()不支持在IIS的isapi方式下运行的PHP。



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn