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位址是...