簡體   English   中英

如何使用jsp頁面獲取局域網IP地址?

[英]How to Get the Local Area Network IP Address using jsp page?

我的應用程序用JSP和Servlet頁面編寫。 每當我嘗試跟蹤用戶的IP地址時,它都會返回計算機的全局IP地址(代理服務器地址),而不是該計算機的局域網IP地址。 因此,如何獲取用戶計算機的LAN IP地址。 請引導我擺脫這個問題...

在本地計算機上嘗試一下...

1- InetAddress thisIp = InetAddress.getLocalHost(); 結果的示例是abcNamePc/172.11.0.115 ,它將為您提供信息PC名稱和IP

獲取遠程計算機的IP,如果您知道計算機的名稱,請使用此名稱

InetAddress address = InetAddress.getByName("name of the machine");

要么

String sIPAddress = request.getRemoteAddr();   //or getRemoteHost()

獲取客戶端的遠程IP。

這可行。

根據需要,您的Web服務器將僅看到向您發送請求的計算機的IP地址。 如果用戶在代理服務器后面,則該代理服務器將代表該用戶發出請求(因此為“ proxy” )。 您無法進一步追溯請求的來源,因為它可能來自任何地方。 只有代理服務器會知道,除非它告訴您,否則您將不會知道。

代理可能會發送一個額外的HTTP標頭,例如X-Forwarded-For ,在這種情況下,它會告訴您正在執行的是誰。 但是,您不知道該IP地址也可能是代理。 同樣,此信息無法驗證,並且可能被偽造,因此無論如何您都不應依賴它。 您獲得的唯一可驗證IP地址是您的Web服務器從中接收請求並將其發送到的IP地址。

如果您的計算機位於局域網內,則a)首先不會出現此問題,b)如果確實如此,則可以通過計算機名稱查詢某些內容。 但是,這將嚴重依賴於網絡基礎架構,並且無法推廣。

暫無
暫無

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

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