首頁  >  文章  >  後端開發  >  PHP 取得ip位址的六種方法

PHP 取得ip位址的六種方法

墨辰丷
墨辰丷原創
2018-06-09 09:41:4666906瀏覽

本篇主要介紹PHP 取得ip位址的六種方法,有興趣的朋友參考下,希望對大家有幫助。

推薦手冊php完全自學手冊

#程式碼一:

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;
}
相關文章推薦:
1.php如何取得使用者的ip位址
# 2.php如何取得客戶端的ip位址?
相關影片推薦:
1.獨孤九賤(4)_PHP影片教學
##程式碼二:

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

方法五:

<?php
function get_real_ip()
{
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
 $ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;])){
 $ips = explode (", ", $_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;]);
 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[&#39;REMOTE_ADDR&#39;]);
}
echo get_real_ip();
?>

方法六:

<?php
if(getenv(&#39;HTTP_CLIENT_IP&#39;)){
$onlineip = getenv(&#39;HTTP_CLIENT_IP&#39;);
}
elseif(getenv(&#39;HTTP_X_FORWARDED_FOR&#39;)){
$onlineip = getenv(&#39;HTTP_X_FORWARDED_FOR&#39;);
}
elseif(getenv(&#39;REMOTE_ADDR&#39;)){
$onlineip = getenv(&#39;REMOTE_ADDR&#39;);
}
else{
$onlineip = $HTTP_SERVER_VARS[&#39;REMOTE_ADDR&#39;];
}
echo $onlineip;
?>

#總結:以上就是這篇文章的全部內容,希望對大家的學習有所幫助。

相關推薦:

php針對字串的轉換技巧

PHP實作針對指定後綴檔案的批次上傳功能

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

以上是PHP 取得ip位址的六種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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