有沒有人知道一個快速的方法來強制傳出的HTTP請求通過特定的(邏輯)IP地址,在Java中?如何告訴java使用特定的傳出ip接口進行http請求?
我正在考慮使用Apache HTTP客戶端(http組件的一部分),它肯定有辦法做到這一點,但API看起來並不平凡。有沒有人已經做過類似的事情了?
謝謝。
有沒有人知道一個快速的方法來強制傳出的HTTP請求通過特定的(邏輯)IP地址,在Java中?如何告訴java使用特定的傳出ip接口進行http請求?
我正在考慮使用Apache HTTP客戶端(http組件的一部分),它肯定有辦法做到這一點,但API看起來並不平凡。有沒有人已經做過類似的事情了?
謝謝。
http.route.local-address
參數是你的朋友[1]。或者,您可能想要實現自定義HttpRoutePlanner
以完全控制路由計算過程並使用某種策略將連接分配給本地接口。
[1] http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html#d4e501
使用socket.bind(bindpoint)
只是socket.connect(endpoint)
之前。
bindpoint
和endpoint
可以InetSocketAddress
我本來以爲這是從您的主機的路由表,而不是任何更高級別的層決定。 – Nick 2011-03-21 10:59:10
@NIck,Linux使用弱主機模式,這意味着它需要路由表而不是Java提供的「提示」。但是,Windows使用Strong Hosting Model,這意味着它將使用爲ServerSocket設置的IP地址。 – 2011-03-21 11:03:39