[英]How can I get IP address of the requested site in JSP code?
我的任務是確定客戶端和Web服務器之間是否存在NAT。 我正在使用這個算法:
我的問題是:如何在JSP代碼中獲取所請求站點的IP地址? 我嘗試使用request.getRequestURL() ,但它返回了domen的網站名稱。 此外,我試圖獲取請求的標題主機 ,但它既不起作用。 而且,我有沒有DNS服務的特定服務器,這就是為什么我無法獲得DNS名稱的IP。
或者任何想法如何確定客戶端和服務器之間是否存在NAT?
嘗試HttpServletRequest.getRemoteAddr()
。
說明說:
返回發送請求的客戶端或最后一個代理的Internet協議(IP)地址。 對於HTTP servlet,與CGI變量REMOTE_ADDR的值相同。
注意 :這只會獲取(或嘗試)客戶端IP地址。 不是客戶端請求的服務器。
JSP代碼不能,因為它在服務器上運行。
我假設您實際上是指JSP創建的頁面中的Javascript代碼,但我認為不允許不受信任的Javascript查找瀏覽器的IP地址或主機名。
(這里是用於獲取在JavaScript客戶端的 IP地址一招,但它涉及發送到遠程服務器的請求......對你來說遠程服務器只能提供NAT的地址。另一個技巧是運行Java applet,但我懷疑它也會遇到沙箱限制......除非用戶的瀏覽器信任applet。)
簡而言之,我不認為服務器通常可以查明客戶端的IP地址是否為NAT。
請注意,如果您確實找到NATed地址后面的真實IP地址,它可能對您沒有任何用處。 可能是IP地址不可路由(因為它在私有范圍內和/或防火牆后面),並且在任何公共DNS服務器中都沒有名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.