客戶端的IP位址也是真實的IP位址

2021-08-20 19:01:53 字數 1106 閱讀 1170

getenv(「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」);  表示如果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(「http_x_forwarded_for」);這一行語句。  這種情況下已經確認客戶端沒有使用**伺服器,從而通過  else if(getenv(「remote_addr」))

ip = getenv(「remote_addr」);

這兩行語句獲得客戶端的ip位址也是真實的ip位址。

function getclientip()

echo getclientip();

//獲取使用者真實ip

function getip()

echo getip();

獲取客戶端的真實IP位址

在很多應用下都可能有需要將使用者的真實ip記錄下來,這時就要獲得使用者的真實ip位址,在jsp裡,獲取客戶端的ip位址的方法是 request.getremoteaddr 這種方法在大部分情況下都是有效的。但是在通過了apache,squid等反向 軟體就不能獲取到客戶端的真實ip位址了 獲得客戶端...

獲取客戶端真實的IP位址

獲得客戶端真實ip位址的方法 可是,如果通過了多級反向 的話,x forwarded for的值並不止乙個,而是一串 值,究竟哪個才是真正的使用者端的真實ip呢?答案是取x forwarded for中第乙個非unknown的有效ip字串。如 x forwarded for 192.168.1.11...

獲得客戶端真實ip位址

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