2014-04-03 126 views
0

我們有幾個使用服務堆棧構建的Web服務,並將其作爲自託管可執行文件部署到多個Windows Azure服務器。此設置從Amazon EC2遷移而來。從Windows Azure服務獲取客戶端IP地址

我們面臨的問題是,該服務使大量使用的IP地址地理分辨率(即地圖IP地址的國家/地區)。但是,在Azure設置下,所有請求似乎都源自服務器自己的外部IP,這是一個LAN IP。

例如,如果虛擬機的IP地址是10.0.0.4,所有HTTP似乎從10.0.0.4發起。

有噸的設置和功能使用不同的術語來亞馬遜。我們試圖研究幾件事情(例如直接服務器返回),但到目前爲止我們已經做了很多。

什麼是實現最簡單的「端口轉發」,使得服務端口是直接打開並請求顯示從他們的確切起源發起的正確方法是什麼?

+0

這個問題將得到更好的要求對服務器故障,因爲它是有關配置Azure的服務器,並沒有專門對編程的ServiceStack服務。 *如果您有興趣以編程方式解決此問題,我會建議檢查針對源IP的請求的「x-forwarded-for」標頭* – Scott

+0

沒有X-Forwarded-For標頭,ServiceStack使用哪個標頭,if它沒有,我們會在我們的代碼中。我傾倒所有的標題 - 它不在那裏。我猜測,因爲這不是HTTP代理的實際操作,而是一些奇怪的事情,它是直接的TCP轉發,但仍然出現NAT,與普通的端口轉發不同。 無論如何,[問題移動](http://serverfault.com/questions/586458/acquire-client-ip-address-from-windows-azure-service)。 –

回答

1

我已取消刪除的問題和回答,因爲事實證明,它畢竟是一個小ServiceStack疑難雜症,並且可能幫助別人,將來別人:

不要使用UserHostAddress,用RemoteIp代替。

相關問題