欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

通過PHP實(shí)現(xiàn)獲取訪問用戶IP

 更新時(shí)間:2020年05月09日 09:32:34   作者:demopy  
這篇文章主要介紹了通過PHP實(shí)現(xiàn)獲取訪問用戶IP,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

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

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

$ip = $_SERVER["REMOTE_ADDR"];

搞定~

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

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

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

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

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

這種情況下已經(jīng)確認(rèn)客戶端沒有使用代理服務(wù)器,從而通過

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

這兩行語句獲得客戶端的IP地址也是真實(shí)的IP地址,根據(jù)經(jīng)驗(yàn)得出

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;
}

另外如果我們想獲取更精準(zhǔn)的使用第三方是一個(gè)不錯(cuò)的方法哦

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地址哦

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 為你總結(jié)一些php信息函數(shù)

    為你總結(jié)一些php信息函數(shù)

    PHP語言是一個(gè)基于函數(shù)的HTML語言,它龐大的函數(shù)庫可以幫助我們實(shí)現(xiàn)許多功能需求。我們?cè)谶@里為大家詳細(xì)介紹了PHP信息函數(shù)包含的一些函數(shù)概念,需要的朋友可以參考下
    2015-10-10
  • 防止MySQL注入或HTML表單濫用的PHP程序

    防止MySQL注入或HTML表單濫用的PHP程序

    據(jù)悉,如果表單無擔(dān)保,MySQL形式的惡意代碼注入將攻擊網(wǎng)站。HTML表單如下拉菜單,搜索框和復(fù)選框都容易成為這類型侵入的切入點(diǎn)。本文將解釋所發(fā)生的這種攻擊,以及如何防止它。已知的安全事項(xiàng)和背景。
    2009-01-01
  • php 使用post,get的一種簡潔方式

    php 使用post,get的一種簡潔方式

    使用$_POST,和$_GET獲取客戶發(fā)來的信息時(shí),一般是使用數(shù)組加小標(biāo)的方式。
    2010-04-04
  • linux下使用ThinkPHP需要注意大小寫導(dǎo)致的問題

    linux下使用ThinkPHP需要注意大小寫導(dǎo)致的問題

    今天把剛完成的第一部分功能部署到客戶的測(cè)試服務(wù)器上,結(jié)果傻眼了,好多功能都用不了,列表頁刷出來全是空的。
    2011-08-08
  • Function eregi is deprecated (解決方法)

    Function eregi is deprecated (解決方法)

    本篇文章是對(duì)Function eregi() is deprecated錯(cuò)誤的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Laravel?Eloquent?ORM高級(jí)部分解析

    Laravel?Eloquent?ORM高級(jí)部分解析

    這篇文章主要為大家介紹了Laravel?Eloquent?ORM高級(jí)部分解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • PHP獲得當(dāng)日零點(diǎn)時(shí)間戳的方法分析

    PHP獲得當(dāng)日零點(diǎn)時(shí)間戳的方法分析

    這篇文章主要介紹了PHP獲得當(dāng)日零點(diǎn)時(shí)間戳的方法,結(jié)合實(shí)例形式分析了php常見時(shí)間戳轉(zhuǎn)換與運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • 簡介PHP的Yii框架中緩存的一些高級(jí)用法

    簡介PHP的Yii框架中緩存的一些高級(jí)用法

    這篇文章主要介紹了PHP的Yii框架中緩存的一些高級(jí)用法,包括頁面緩存與會(huì)話緩存限制器等內(nèi)容,需要的朋友可以參考下
    2016-03-03
  • php生成二維碼時(shí)出現(xiàn)中文亂碼的解決方法

    php生成二維碼時(shí)出現(xiàn)中文亂碼的解決方法

    這篇文章主要介紹了php生成二維碼時(shí)出現(xiàn)中文亂碼的解決方法,較為詳細(xì)的分析了php生成二維碼的方法,以及出現(xiàn)亂碼時(shí)的解決方法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • php生成二維碼的幾種方式整理及使用實(shí)例

    php生成二維碼的幾種方式整理及使用實(shí)例

    本文整理了一些php生成二維碼的方式:1.google開放api;2.php類庫PHP QR Code;3.libqrencode;4.QRcode Perl CGI & PHP scripts感興趣的朋友可以參考下哈
    2013-06-06

最新評(píng)論