通過PHP實現獲取訪問使用者IP

2022-09-29 14:45:08 字數 1234 閱讀 7642

在php中自帶了乙個非常的簡單的獲取ip位址的全域性變數,很多初學都獲取ip都使用它了,但是對於這些我們一般用法是滿足了,但是對於要求高精度這個函式還是不行的。

這個是最簡單的方法,對於開了透明**之類的是沒有辦法的,如果內網訪問也不能讀取正確的外網ip,不過很省力就是了:

$ip = $_server["remote_addr"];

搞定~上面方法用來取得客戶端的 ip 位址,但如果客戶端是使用**伺服器來訪問,那取到的就是**伺服器的 ip 位址,而不是真正的客戶端 ip 位址

要想透過**伺服器取得客戶端的真實 ip 位址,就要使用 getenv("http_x_forwarded_for") 來讀取。

但是如果客戶端沒有通過**伺服器來訪問,那麼用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");這一行語句。

這種情況下已經確認客戶端沒有使用**伺服器,從而通過

else if(getenv("remote_addr"))

$ip = getenv("remote_addr");

這兩行語句獲得客戶端的ip位址也是真實的ip位址,根據經驗得出

}另外如果我們想獲取更精準的使用第三方是乙個不錯的方法哦

function get_onlineip()

這樣不管理**還是什麼都可以判斷ip位址哦

本文標題: 通過php實現獲取訪問使用者ip

本文位址: /wangluo/php/312686.html

通過PHP實現獲取訪問使用者IP

在php中自帶了乙個非常的簡單的獲取ip位址的全域性變數,很多初學都獲取ip都使用它了,但是對於這些我們一般用法是滿足了,但是對於要求高精度這個函式還是不行的。這個是最簡單的方法,對於開了透明 之類的是沒有辦法的,如果內網訪問也不能讀取正確的外網ip,不過很省力就是了 ip server remot...

通過Nginx獲取使用者ip

x forwarded for,x real ipx forwarded for的格式 x forwarded for client,proxy1,proxy2 說明 client指使用者機的ip,或請求 的最初的機器的ip proxy1指一級 proxy2指二級 例如 x forwarded fo...

PHP獲取使用者IP位址

開發中時常需要獲取到來訪使用者的ip 位址,在php中主要通過超全域性變數 server裡邊的值來獲取,方法如下 獲取使用者ip位址 param integer type 返回型別 0 返回ip位址 1 返回ipv4位址數字 param boolean adv 是否進行高階模式獲取 有可能被偽裝 i...