2013-06-28 40 views
0

我想知道如何獲得連接到我的應用程序(asp.net mvc4)的用戶的IP。 我試過了:獲取連接到asp應用程序的用戶的ip地址

IPHostEntry ipHostEntry = Dns.GetHostByName(Dns.GetHostName()); 
IPAddress ipAddress = ipHostEntry.AddressList[0]; 

但它沒有奏效。

那麼如何修改代碼片段來獲取IP或連接的用戶呢?

+0

這種接觸器與您尋找相似嗎? http://stackoverflow.com/questions/735350/how-to-get-a-users-client-ip-address-in-asp-net – JayH

回答

1

下面是來自類似問題@jamieHennerley建議轉換的C#代碼。

protected string GetIPAddress() 
     { 
      System.Web.HttpContext context = System.Web.HttpContext.Current; 

      string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 

      if (!string.IsNullOrEmpty(ipAddress)) 
      { 
       string[] addresses = ipAddress.Split(','); 
       if (addresses.Length != 0) 
       { 
        return addresses[0]; 
       } 
      } 

      return context.Request.ServerVariables["REMOTE_ADDR"]; 
     } 
+0

結果始終是':: 1'爲什麼? –

+0

:: 1是IPv6地址和0:0:0:0:0:0:0:1的縮寫,它是本地計算機的環回地址。因此:: 1僅通過IPv6而不是IPv4與127.0.0.1相同。你可能會在你的機器上安裝IPV6。一旦部署了應用程序,它應該可以正常工作,並顯示IPv4地址。 – vendettamit

相關問題