PHP 擷取ip地址的六種方法

來源:互聯網
上載者:User
本篇文章主要介紹PHP 擷取ip地址的六種方法,感興趣的朋友參考下,希望對大家有所協助。

代碼一:

function getip() {  static $ip = '';  $ip = $_SERVER['REMOTE_ADDR'];  if(isset($_SERVER['HTTP_CDN_SRC_IP'])) {    $ip = $_SERVER['HTTP_CDN_SRC_IP'];  } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {    $ip = $_SERVER['HTTP_CLIENT_IP'];  } 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)) {    foreach ($matches[0] AS $xip) {      if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {        $ip = $xip;        break;      }    }  }  return $ip;}

代碼二:

<?phperror_reporting (E_ERROR | E_WARNING | E_PARSE);if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];}elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];}elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){$ip = $HTTP_SERVER_VARS["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;?>

方法三:

<?php$iipp = $_SERVER["REMOTE_ADDR"];echo $iipp ;?>

方法四:

<?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?>

方法五:

<?phpfunction 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();?>

方法六:

<?phpif(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 = $HTTP_SERVER_VARS['REMOTE_ADDR'];}echo $onlineip;?>

總結:以上就是本篇文的全部內容,希望能對大家的學習有所協助。

相關推薦:

php針對字串的轉換技巧

PHP實現針對指定尾碼檔案的批量上傳功能

php數字金額轉換成中文大寫金額的函數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.