濮阳杆衣贸易有限公司

主頁 > 知識庫 > 通過PHP實現獲取訪問用戶IP

通過PHP實現獲取訪問用戶IP

熱門標簽:辦理400電話哪家好點 正規(guī)電銷機器人系統(tǒng) 重慶外呼電銷系統(tǒng)多少錢 南京3D地圖標注 邢臺400電話辦理 濟源百應電銷機器人聯系方式 嘟嘟云外呼系統(tǒng) 南寧電話外呼系統(tǒng)線路 咸陽電銷

在php中自帶了一個非常的簡單的獲取IP地址的全局變量,很多初學都獲取IP都使用它了,但是對于這些我們一般用法是滿足了,但是對于要求高精度這個函數還是不行的。

這個是最簡單的方法,對于開了透明代理之類的是沒有辦法的,如果內網訪問也不能讀取正確的外網IP,不過很省力就是了:

$ip = $_SERVER["REMOTE_ADDR"];

搞定~

上面方法用來取得客戶端的 IP 地址,但如果客戶端是使用代理服務器來訪問,那取到的就是代理服務器的 IP 地址,而不是真正的客戶端 IP 地址

要想透過代理服務器取得客戶端的真實 IP 地址,就要使用 getenv("HTTP_X_FORWARDED_FOR") 來讀取。
但是如果客戶端沒有通過代理服務器來訪問,那么用getenv("HTTP_X_FORWARDED_FOR") 取到的值將是空的。

else if(getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");

表示如果getenv("HTTP_X_FORWARDED_FOR") 取到的值存在不為空(即客戶端使用代理服務器的情況下),則變量$ip等于getenv("HTTP_X_FORWARDED_FOR") 取到的真實IP值。

如果上面的else if(getenv("HTTP_X_FORWARDED_FOR"))取得的值為空(即沒有使用代理服務器),則不會執(zhí)行下面的$ip = getenv("HTTP_X_FORWARDED_FOR");這一行語句。

這種情況下已經確認客戶端沒有使用代理服務器,從而通過

else if(getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");

這兩行語句獲得客戶端的IP地址也是真實的IP地址,根據經驗得出

function getIP()
{
  static $realip;
  if (isset($_SERVER)){
    if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
      $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    } else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
      $realip = $_SERVER["HTTP_CLIENT_IP"];
    } else {
      $realip = $_SERVER["REMOTE_ADDR"];
    }
  } else {
    if (getenv("HTTP_X_FORWARDED_FOR")){
      $realip = getenv("HTTP_X_FORWARDED_FOR");
    } else if (getenv("HTTP_CLIENT_IP")) {
      $realip = getenv("HTTP_CLIENT_IP");
    } else {
      $realip = getenv("REMOTE_ADDR");
    } 
  }
  return $realip;
}

另外如果我們想獲取更精準的使用第三方是一個不錯的方法哦

function get_onlineip() {
  $ch = curl_init('http://www.ip138.com/ip2city.asp');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  $a = curl_exec($ch);
  preg_match('/[(.*)]/', $a, $ip);
  return $ip[1];
 }

這樣不管理代理還是什么都可以判斷IP地址哦

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • PHP獲取真實IP及IP模擬方法解析
  • php判斷IP地址是否在多個IP段內
  • php實現統(tǒng)計IP數及在線人數的示例代碼
  • bt寶塔面板php7.3、php7.4不支持ZipArchive解決方法
  • PHP Pipeline 實現中間件的示例代碼
  • 原生javascript的ajax請求及后臺PHP響應操作示例
  • php利用ZipArchive類操作文件的實例
  • PHP生成zip壓縮包的常用方法示例
  • php解壓縮zip和rar壓縮包文件的方法
  • PHP基于ip2long實現IP轉換整形

標簽:南通 唐山 平頂山 隴南 通遼 武漢 河南 黃山

巨人網絡通訊聲明:本文標題《通過PHP實現獲取訪問用戶IP》,本文關鍵詞  通過,PHP,實現,獲取,訪問,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《通過PHP實現獲取訪問用戶IP》相關的同類信息!
  • 本頁收集關于通過PHP實現獲取訪問用戶IP的相關信息資訊供網民參考!
  • 推薦文章
    木里| 蕉岭县| 尉犁县| 万年县| 大安市| 韶山市| 五莲县| 喀什市| 西昌市| 吉林省| 靖远县| 苍溪县| 登封市| 右玉县| 临澧县| 武清区| 长岛县| 手机| 奎屯市| 额济纳旗| 扬中市| 汶川县| 定安县| 二连浩特市| 泸西县| 拜泉县| 新闻| 湾仔区| 丰宁| 丹巴县| 大方县| 金溪县| 新和县| 惠东县| 潮安县| 南安市| 宾川县| 霸州市| 黄石市| 宝坻区| 东台市|