透過HTTP代理查看真實IP

透過HTTP代理查看真實IP

我正在 Java 應用程式中設定 HTTP 代理。在該應用程式中,我透過查詢來測試代理程式是否正常運作http://api.ipify.org/。然而,我得到的是我的真實 IP 位址,而不是代理的 IP 位址。我用 Wireshark 進行了檢查,我的計算機將 http 請求發送到代理,然後代理將我的真實 IP 位址傳回給我。我想知道這怎麼可能。我還想知道是否有一種方法可以在不查詢 api 的情況下檢查此行為。謝謝你!

答案1

正如您所發現的,發送的標頭名為:X-轉寄-For,其中包含您的原始 IP。

可能可以刪除該請求標頭或對其進行自訂,如果您嘗試刪除它,無論如何它都可能會被代理附加到您的手中。這是一篇有趣的文章,如果您還沒看過,可能會對您有幫助。來自 Java 的 HTTP 請求,新增標頭和代理訊息。另一種選擇可能是尋找不同的代理商提供者。

對於檢查代理是否正常運作的替代方法,您應該能夠使用:InetAddress.isReachable(),您可以檢查來自任何網站(例如 Google.com)或互聯網上的自訂伺服器的回應。除非您嘗試驗證代理 IP,否則您仍然可以設定自己的驗證伺服器,即使它是一些免費主機。 InetAddress.isReachable 可能有一些缺陷,如下所述:在很多情況下,「isReachable」方法對我來說不值得使用。

這看起來與您的問題最相關:如何檢查 Java 中的代理是否正常運作?我還想像您正在嘗試做類似的事情,例如檢查代理列表,而不是使用付費服務。這取決於該軟體是否只適合您,或是否要發布和分享。如果只有你一個人,那麼購買一個可以匿名的代理商可能是值得的。

答案2

我想我剛剛才知道這裡發生了什麼事。代理似乎使用 X-Forwarded-For HTTP 標誌。看http://en.wikipedia.org/wiki/X-Forwarded-For。所以我想真正確定的唯一方法是查詢 api 並查看返回的內容。

相關內容