簡體   English   中英

獲取客戶端靜態IP地址

[英]Getting client static IP address

我正在使用Internet中的Web應用程序,並且正在通過檢查其客戶端IP地址(例如192.168.2.XXX )來檢查用戶的登錄名是否有效。 實際上,我找到了一個有效的代碼(如下)。 該代碼之前完全可以運行,但是一段時間后,其輸出不再相同。 現在,此代碼僅給我1個IP地址,即服務器的IP地址。 我的代碼有什么問題? 如何獲得客戶端的靜態IP地址而不是服務器的IP地址? 我還嘗試了其他解決方案,例如getRemoteAddr()request.getHeader("PROXY-CLIENT-IP")但是它不起作用。

Java:

String ipAddress = request.getHeader("X-FORWARDED-FOR");
if(ipAddress == null)
    ipAddress = InetAddress.getLocalHost().getHostAddress();

您正在混合兩個抽象級別,這很少是一件好事。 標頭X-FORWARDED_FOR由負載均衡器或代理插入。 如果客戶端直接到達服務器,則此標頭不存在,並且您正在執行此代碼InetAddress.getLocalHost().getHostAddress(); 這正是您所說的:檢索正在運行此代碼段的主機(即Web服務器)的IP地址。

另請參見此處: 獲取客戶端IP地址:REMOTE_ADDR,HTTP_X_FORWARDED_FOR,還有什么用?

暫無
暫無

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

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