![](/img/trans.png)
[英]How can I get the real IP address of Client behind F5 loadbalancer with Java socket
[英]In Java, how can a website find my real IP address while I'm behind a proxy?
我的程序將使用(http)代理發送http請求。 並且代理地址是程序已知的。 但是該程序還希望在代理之后獲取當前IP地址。 檢索該內容的最佳方法是什么?
唯一的方法是讓程序將其IP地址顯式發送到請求URL,自定義請求標頭或請求正文中編碼的服務器。
如果代理處於您的控制之下,則可以對其進行配置,以將客戶端的IP地址添加到請求中。 (它可能已經這樣做;例如,“ x-forwarded-for”)
另一個問題(通常)是您機器的IP地址很可能是私有IP地址。 不能保證服務器可以訪問該IP。 或者,如果服務器使用它來標識客戶端,則不能保證IP的唯一性或可靠性。 例如不以某種方式欺騙。
不過,還有一種選擇。 如果正確配置服務器和客戶端,則服務器可以依靠SSL客戶端證書來建立客戶端的身份。 但這需要一些注意事項:
通過代理發送SSL / TLS時也存在安全問題。 如果不能信任代理,則有可能發生“中間人”攻擊。
總而言之,這是一種“困難”的方法。
您可以查詢我的IP地址是什么? ,或任何其他可以告訴您的網站(例如google,我的IP地址是什么)。
像這樣
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
System.out.println("ipAddress:" + ipAddress);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.