2014-04-29 84 views
0

我使用的服務來獲取客戶國家的IP地址的基礎上,但它是通過網頁API休息服務時,我使用UserHostAddress它顯示內部IP只有當我發送到服務它顯示錯誤的國家是否有任何解決方案得到國家或ipaddresss得到客戶端公共IP地址在網絡api

+0

我不確定你在問什麼。你是否從內部IP調用服務器? 'UserHostAddress'顯示服務器看到的IP。如果客戶端位於NAT防火牆之後,這將是「公共」IP。否則,這是客戶的實際IP。服務器不知道也不關心該地址是什麼。 –

+0

[UserHostAddress給出錯誤的IP地址]的可能的重複(http://stackoverflow.com/questions/200527/userhostaddress-gives-wrong-ips) –

+0

你可以嘗試,'string SourceIP = String.IsNullOrEmpty(Request.ServerVariables [「HTTP_X_FORWARDED_FOR 「])? Request.ServerVariables [「REMOTE_ADDR」]:Request.ServerVariables [「HTTP_X_FORWARDED_FOR」];' –

回答

0

如果您有本地IP,並且您的路由器有真實的,您的計算機只與路由器通信,並且路由器與Internet通信。有兩種獲取路由器IP的方式:

  1. 發送http請求到某個顯示你的IP的站點並從那裏得到它。
  2. 連接到路由器接口並直接從路由器獲取IP。
+0

可以提供示例代碼 – user3544049