php 獲取客戶端IP位址

2021-06-27 22:47:00 字數 941 閱讀 8545

/**

* 獲取真實ip位址

*//*

在php中getenv(引數)函式是乙個用於獲取環境變數的函式,根據提供不同的引數可以獲取不同的環境變數,

getenv("remote_addr")用來取得客戶端的 ip 位址,但如果客戶端是使用**伺服器來訪問,那取到的就是**伺服器的 ip 位址,而不是真正的客戶端 ip 位址。要想透過**伺服器取得客戶端的真實 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"))取得的值為空(即沒有使用**伺服器),則不會執行下面的$ip = getenv("http_x_forwarded_for");這一行語句。

remote_addr 是你的客戶端跟你的伺服器「握手」時候的ip。如果使用了「匿名**」,remote_addr將顯示**伺服器的ip。

http_client_ip 是**伺服器傳送的http頭。如果是「超級匿名**」,則返回none值。同樣,remote_addr也會被替換為這個**伺服器的ip。

$_server['remote_addr']; //訪問端(有可能是使用者,有可能是**的)ip

$_server['http_client_ip']; //**端的(有可能存在,可偽造)

$_server['http_x_forwarded_for']; //使用者是在哪個ip使用的**(有可能存在,也可以偽造)

*/function get_ip()

/*** 新增管理員日誌

*/function create_admin_log($action)

php獲取客戶端ip位址

最近做的專案需要php獲取 客戶端訪問的ip位址,其實原理很簡單,從 php的 server全域性陣列中直接獲取即可。不過有的時候伺服器不同或者 伺服器等等問題,索性全部總結一遍,基本各種情況都考慮到了,直接 使用即可 function real ip 可獲取到 server的情況下 獲取不到 se...

PHP 獲取客戶端ip位址

一 如果沒有使用 伺服器,remote addr 客戶端iphttp x forwarded for 沒數值或不顯示 ip server remote addr 二 使用透明 remote addr 最後乙個 伺服器 ip http x forwarded for 客戶端真實 ip 經過多個 伺服器...

PHP 獲取客戶端ip位址

remote addr 客戶端iphttp x forwarded for 沒數值或不顯示 ip server remote addr remote addr 最後乙個 伺服器 ip http x forwarded for 客戶端真實 ip 經過多個 伺服器時,這個值類似 221.5.252.16...