簡體   English   中英

在Jsp頁面中獲取客戶端的IP地址

[英]Getting IP address of client in Jsp page

我想在我的jsp頁面中獲取客戶端的IP地址,並希望存儲在數據庫中。

我正在Jsp頁面中使用以下代碼來查找IP地址,但它顯示的是服務器IP地址。

 <input type="hidden" name="ipaddress" value="<%=request.getRemoteAddr()%>"/> 

在通常情況下,方法ServletRequest.getRemoteAddr() (或getRemoteHost()getRemotePort() )應返回實際客戶端的詳細信息。 但是,如果通過代理或其他servlet引擎路由,則將獲得這些機器的IP。 為了解決這些情況,您可以嘗試以下操作

request.getHeader("VIA")             --> Gateway   
request.getHeader("X-FORWARDED-FOR")--> IPaddress

但是,如果請求直接來自客戶端,則此方法可能返回null。 您可以通過一些其他條件來處理這種情況以獲取有效數據。

嘗試從帶有request對象的服務器端獲取客戶端IP地址從來都不是可靠的方法。

最可靠的代碼傾向於在客戶端執行,例如ActiveX,Applet或Javascript。 但是,這也帶來了一些挑戰。 檢查一下這個問題的答案,以便您知道自己要面對什么( 這是我偏愛的答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM