php 獲取客戶端的真實(shí)ip
function GetIP(){
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
return($ip);
}
regist=off的問(wèn)題
if ($register_globals!=1) {
@extract($_SERVER, EXTR_SKIP);
@extract($_COOKIE, EXTR_SKIP);
@extract($_SESSION, EXTR_SKIP);
@extract($_POST, EXTR_SKIP);
@extract($_FILES, EXTR_SKIP);
@extract($_GET, EXTR_SKIP);
@extract($_ENV, EXTR_SKIP);
}
其中REMOTE_ADDR比較好理解,php手冊(cè)上有說(shuō)明它是預(yù)定的變量;而HTTP_x_FORWARDED_FOR呢,在網(wǎng)上找了一些資料,是這么說(shuō)的
在PHP 中使用 $_SERVER["REMOTE_ADDR"] 來(lái)取得客戶端的 IP 地址,但如果客戶端是使用代理服務(wù)器來(lái)訪問(wèn),那取到的就是代理服務(wù)器的 IP 地址,而不是真正的客戶端 IP 地址。要想透過(guò)代理服務(wù)器取得客戶端的真實(shí) IP 地址,就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 來(lái)讀取。
不過(guò)要注意的事,并不是每個(gè)代理服務(wù)器都能用 $_SERVER["HTTP_X_FORWARDED_FOR"] 來(lái)讀取客戶端的真實(shí) IP,有些用此方法讀取到的仍然是代理服務(wù)器的 IP。
至于HTTP_CLIENT_IP,有篇貼子上說(shuō)
'HTTP_CLIENT_IP'是用戶的IP,'HTTP_X_FORWARDED_FOR'是代理的IP
這些IP頭消息未必能夠取得到(因?yàn)椴煌臑g覽器不同的網(wǎng)絡(luò)設(shè)備,可能發(fā)不同的IP頭消息).所以PHP就嘗試把每個(gè)IP頭消息判斷一下,若有,則取其中的一個(gè).
- Java獲取客戶端真實(shí)IP地址過(guò)程解析
- Java面試之如何獲取客戶端真實(shí)IP
- PHP獲取真實(shí)客戶端的真實(shí)IP
- PHP獲取用戶客戶端真實(shí)IP的解決方案
- Java實(shí)現(xiàn)獲取客戶端真實(shí)IP方法小結(jié)
- JSP如何獲取客戶端真實(shí)IP地址
- PHP獲取客戶端真實(shí)IP地址的5種情況分析和實(shí)現(xiàn)代碼
- php中獲取遠(yuǎn)程客戶端的真實(shí)ip地址的方法
- PHP 獲取客戶端真實(shí)IP地址多種方法小結(jié)
- 淺談使用Java Web獲取客戶端真實(shí)IP的方法示例詳解
相關(guān)文章
PHP日期函數(shù)date格式化UNIX時(shí)間的方法
這篇文章主要介紹了PHP日期函數(shù)date格式化UNIX時(shí)間的方法,實(shí)例分析了php中date函數(shù)的使用技巧,需要的朋友可以參考下2015-03-03
php json_encode()函數(shù)返回json數(shù)據(jù)實(shí)例代碼
php返回json數(shù)據(jù)用到j(luò)son_encode()函數(shù),此函數(shù)會(huì)生成一個(gè)標(biāo)準(zhǔn)的json格式的數(shù)據(jù),實(shí)例代碼如下2014-10-10
實(shí)例說(shuō)明js腳本語(yǔ)言和php腳本語(yǔ)言的區(qū)別
今天小編就為大家分享一篇關(guān)于實(shí)例說(shuō)明js腳本語(yǔ)言和php腳本語(yǔ)言的區(qū)別,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04
php實(shí)現(xiàn)四舍五入的方法小結(jié)
這篇文章主要介紹了php實(shí)現(xiàn)四舍五入的方法,實(shí)例總結(jié)了php實(shí)現(xiàn)四舍五入的三種常用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
基于PHP安裝zip拓展,以及l(fā)ibzip安裝的問(wèn)題
下面小編就為大家分享一篇基于PHP安裝zip拓展,以及l(fā)ibzip安裝的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
PHP實(shí)現(xiàn)上傳多圖即時(shí)顯示與即時(shí)刪除的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)上傳多圖即時(shí)顯示與即時(shí)刪除的方法,結(jié)合實(shí)例形式分析了php針對(duì)圖片文件的預(yù)覽、上傳及刪除相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
PHP高精確度運(yùn)算BC函數(shù)庫(kù)實(shí)例詳解
這篇文章主要介紹了PHP高精確度運(yùn)算BC函數(shù)庫(kù),結(jié)合實(shí)例形式分析了BC函數(shù)庫(kù)中bccomp、bcadd、bcsub、bcmod、bcdiv、bcmul等函數(shù)的功能以及高精度數(shù)學(xué)運(yùn)算使用方法,需要的朋友可以參考下2017-08-08
mysql中存儲(chǔ)過(guò)程、函數(shù)的一些問(wèn)題
mysql中存儲(chǔ)過(guò)程、函數(shù)的一些問(wèn)題...2007-02-02
PHP更新購(gòu)物車(chē)數(shù)量(表單部分/PHP處理部分)
購(gòu)物車(chē)的數(shù)量是根據(jù)用戶的選擇商品加入而不斷增加的,下面是具體的實(shí)現(xiàn)代碼(客服端部分/PHP服務(wù)器端處理),有類(lèi)似需求的朋友可以參考下2013-05-05

