2016-02-25 100 views
1

如何提取ASP.NET 5/MVC 6 vNext中的IPAddress? 我正在使用RC1。IPAddress null for MVC 6 ASP.NET 5

這不起作用,並且在非本地主機地址上返回null。

if (httpContext.Connection.RemoteIpAddress != null) 
{ 
    currentIp = httpContext.Connection.RemoteIpAddress.ToString(); 
} 

這工作,但它是凌亂:

private static string GetIPAddress(HttpRequest httpRequest) 
    { 
     string keys = string.Empty; 
     foreach (string key in httpRequest.Headers.Keys) 
     { 
      keys = keys + key + "#"; 
     } 

     string[] arrKeys = keys.Split('#'); 

     int x = 0; 
     foreach (string value in httpRequest.Headers.Values) 
     { 
      if (arrKeys[x].Trim() == "X-Forwarded-For") 
      { 
       string[] arrIP = value.Split(':'); 
       if (arrIP[0] != null) 
       { 
        // ip found 
        return arrIP[0]; 
       } 
      } 
      x++; 
     } 

     // no ip found 
     return string.Empty; 
    } 

回答

1

按預期的方式,防止被正確解析正確的頭一個錯誤的這並不是目前的工作。您可以從他們的回購中追蹤此issue

在他們結束該問題之前,您必須使用解決方法。