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

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

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

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

這個是最簡單的方法,對于開了透明代理之類的是沒有辦法的,如果內(nèi)網(wǎng)訪問也不能讀取正確的外網(wǎng)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");這一行語句。

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

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

    linux下使用ThinkPHP需要注意大小寫導致的問題

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

    Function eregi is deprecated (解決方法)

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

    Laravel?Eloquent?ORM高級部分解析

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

    PHP獲得當日零點時間戳的方法分析

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

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

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

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

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

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

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

最新評論