獲取客戶端真實ip

2021-08-21 06:26:06 字數 1603 閱讀 3092

很多時候我們需要獲取客戶端的訪問ip,

// ip位址合法驗證

$long = sprintf("%u", ip2long($ip));

$ip = $long ? array($ip, $long) : array('0.0.0.0', 0);

return $ip[$type];

}一、如果沒有使用**伺服器,

remote_addr= 客戶端iphttp_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 = $_server['http_x_forwarded_for'];
需要在nginx配置 

三、使用普通匿名**伺服器,

remote_addr= 最後乙個**伺服器 ip

http_x_forwarded_for= **伺服器 ip (經過多個**伺服器時,這個值類似:203.98.182.163, 203.98.182.163, 203.129.72.215)

這樣就隱藏了客戶端的真實ip,但伺服器會知道客戶端是通過**伺服器去訪問的。

四、使用欺騙性**伺服器,

remote_addr= **伺服器 ip

http_x_forwarded_for= 隨機的 ip(經過多個**伺服器時,這個值類似:220.4.251.159, 203.98.182.163, 203.129.72.215)

伺服器可以識別到時通過**伺服器訪問的,但傳送給目標伺服器的是虛假ip。

五、使用高匿名**,

remote_addr= **伺服器 iphttp_x_forwarded_for= 沒數值或不顯示

使用這種**時,不同瀏覽器不同裝置會返回不同的ip頭資訊,因此php使用$_server["remote_addr"]$_server["http_x_forwarded_for"]獲取的值可能是空值也可能是「unknown」值。

php獲取ip**如下:

獲取客戶端真實IP

server http x real ip nginx 模式下,獲取客戶端真實ip server http client ip 端的 有可能存在,可偽造 server http x forwarded for 使用者是在哪個ip使用的 有可能存在,也可以偽造 server http cdn src ...

獲取客戶端真實IP

在jsp裡,獲取客戶端的ip位址的方法是 request.getremoteaddr 這種方法在大部分情況下都是有效的。但是在通過了 apache,nagix等反向 軟體就不能獲取到客戶端的真實ip位址了。如果使用了反向 軟體,用 request.getremoteaddr 經過 以後,由於在客戶端...

獲取客戶端使用者真實ip

通常通過request.servervariables remote addr 或 request.userhostaddress 來獲取客戶端ip。如果在客戶端使用了 伺服器或在伺服器前加了反向 伺服器,獲取的就是 伺服器的位址了,無法獲取使用者真實ip。怎麼獲取呢?public static s...