獲取客戶端真實IP方法

2021-09-02 09:48:31 字數 1889 閱讀 8086

我們經常會記錄審計日誌,那麼如何獲取客戶端真實ip呢?讓我們了解一下http協議頭吧。

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

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

x-forwarded-for:簡稱xff頭,它代表客戶端,也就是http的請求端真實的ip,只有在通過了http **(比如apache**)或者負載均衡伺服器時才會新增該項。

它不是rfc中定義的標準請求頭資訊,在squid快取**伺服器開發文件中可以找到該項的詳細介紹。

標準格式如下:x-forwarded-for: client1, proxy1, proxy2

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

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

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

一、沒有使用**伺服器的情況: www.2cto.com

remote_addr = 您的 ip

http_client_ip = 沒數值或不顯示

http_x_forwarded_for = 沒數值或不顯示

二、使用透明**伺服器的情況:transparent proxies

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

http_client_ip = **伺服器 ip

http_x_forwarded_for = 您的真實 ip ,經過多個**伺服器時,這個值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

這類**伺服器還是將您的資訊**給您的訪問物件,無法達到隱藏真實身份的目的。

三、使用普通匿名**伺服器的情況:anonymous proxies

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

http_client_ip = **伺服器 ip

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

隱藏了您的真實ip,但是向訪問物件透露了您是使用**伺服器訪問他們的。

四、使用欺騙性**伺服器的情況:distorting proxies

remote_addr = **伺服器 ip

http_client_ip = **伺服器 ip

http_x_forwarded_for = 隨機的 ip ,經過多個**伺服器時,這個值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。 www.2cto.com

告訴了訪問物件您使用了**伺服器,但編造了乙個虛假的隨機ip代替您的真實ip欺騙它。

五、使用高匿名**伺服器的情況:high anonymity proxies (elite proxies)

remote_addr = **伺服器 ip

http_client_ip = 沒數值或不顯示

http_x_forwarded_for = 沒數值或不顯示 ,經過多個**伺服器時,這個值類似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

完全用**伺服器的資訊替代了您的所有資訊,就象您就是完全使用那台**伺服器直接訪問物件。

獲取客戶端真實ip方法

獲取客戶端真實ip

很多時候我們需要獲取客戶端的訪問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 forwar...

獲取客戶端真實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 經過 以後,由於在客戶端...