首頁 >後端開發 >PHP問題 >php如何取得客戶端的ip位址?

php如何取得客戶端的ip位址?

青灯夜游
青灯夜游原創
2019-10-15 13:45:383917瀏覽

php如何取得客戶端的ip位址?

一、如果沒有使用代理伺服器

REMOTE_ADDR = 客戶端IP

HTTP_X_FORWARDED_FOR = 沒數值或不顯示

$ip = $_SERVER['REMOTE_ADDR'];

 二、使用透明代理

REMOTE_ADDR = 最後一個代理伺服器IP

#HTTP_X_FORWARDED_FOR = 客戶端真實IP (經過多個代理伺服器時,這個值類似:221.5.252.160, 203.98.182.163,203.129.72.215)

##ip#ip ,無法隱藏真實ip。


$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];

三、使用普通匿名代理伺服器

REMOTE_ADDR =

最後一個代理伺服器IP

#HTTP_X_FORWARDED_FOR =

代理伺服器IP (經過多個代理伺服器時,這個值類似:203.98.182.163,203.98.182.163,203.129.72.215) #ip#這樣就隱藏了客戶端的真實就隱藏了客戶端的真實)#ip ,但伺服器會知道客戶端是透過代理伺服器去存取的。


四、使用欺騙性代理伺服器


#REMOTE_ADDR =

代理伺服器IP


HTTP_X_FORWARDED_FOR =

隨機的IP

(經過多個代理伺服器時,這個值類似:220.4.251.159,203.98.182.163,203.129.72.215)




#BS訪問的,但發送給目標伺服器的是虛假ip。

五、使用高匿名代理

REMOTE_ADDR = 代理伺服器IP

###HTTP_X_FORWARDED_FOR = ###沒數值或不顯示############使用這種代理程式時,不同瀏覽器不同裝置會傳回不同的ip頭訊息,因此PHP使用$_SERVER["REMOTE_ADDR"] 、$_SERVER[" HTTP_X_FORWARDED_FOR"] 取得的值可能是空值也可能是「unknown」值。 ############PHP取得ip程式碼如下:#########
public function ip() {
    //strcasecmp 比较两个字符,不区分大小写。返回0,>0,<0。
    if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
        $ip = getenv('HTTP_CLIENT_IP');
    } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
        $ip = getenv('HTTP_X_FORWARDED_FOR');
    } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
        $ip = getenv('REMOTE_ADDR');
    } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
        $ip = $_SERVER[&#39;REMOTE_ADDR&#39;];
    }
    $res =  preg_match ( '/[\d\.]{7,15}/', $ip, $matches ) ? $matches [0] : '';
    echo $res;
    //dump(phpinfo());//所有PHP配置信息
}
###更多PHP相關知識,請造訪###PHP中文網###! ###

以上是php如何取得客戶端的ip位址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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