2015-06-22 52 views
1

我需要在MVC 5.搜索谷歌Request.ServerVariables [“REMOTE_ADDR”]以获取本地系统的IP地址和浏览器代理(火狐,chorme,即等),这是不在MVC5工作获取IP地址,浏览器类型MVC 5

+0

'Request.Browser'是你需要检查浏览器的信息是什么。 'Request.UserHostAddress'用于IP地址。在这两种情况下,您可能无法保证正确的信息,因为代理不会为您提供正确的客户端机器和浏览器的IP地址用户代理始终可以被操纵。让我知道我的观点是否能帮助你。 – ramiramilu

回答

0

要获得客户端的IP地址

var IPAddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 
if (string.IsNullOrEmpty(IPAddress)) 
{ 
    IPAddress = Request.ServerVariables["REMOTE_ADDR"]; 
} 

为了让客户端用户代理。

var userAgent = Request.UserAgent; 
1

为了得到IP地址使用此代码:

public static string GetIPAddress(HttpRequestBase request) 
    { 
     string ip; 
     try 
     { 
      ip = request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 
      if (!string.IsNullOrEmpty(ip)) 
      { 
       if (ip.IndexOf(",") > 0) 
       { 
        string[] ipRange = ip.Split(','); 
        int le = ipRange.Length - 1; 
        ip = ipRange[le]; 
       } 
      } 
      else 
      { 
       ip = request.UserHostAddress; 
      } 
     } 
     catch { ip = null; } 

     return ip; 
    } 

https://stackoverflow.com/a/7348761/4568359

======================= =========================================

并为获得浏览器信息:

System.Web.HttpBrowserCapabilities browser = Request.Browser; 
string brw_info = "Browser Capabilities\n" 
    + "Type = "     + browser.Type + "\n" 
    + "Name = "     + browser.Browser + "\n" 
    + "Version = "     + browser.Version + "\n" 
    + "Major Version = "   + browser.MajorVersion + "\n" 
    + "Minor Version = "   + browser.MinorVersion + "\n" 
    + "Platform = "    + browser.Platform + "\n" 
    + "Is Beta = "     + browser.Beta + "\n" 
    + "Is Crawler = "    + browser.Crawler + "\n" 
    + "Is AOL = "     + browser.AOL + "\n" 
    + "Is Win16 = "    + browser.Win16 + "\n" 
    + "Is Win32 = "    + browser.Win32 + "\n" 
    + "Supports Frames = "   + browser.Frames + "\n" 
    + "Supports Tables = "   + browser.Tables + "\n" 
    + "Supports Cookies = "  + browser.Cookies + "\n" 
    + "Supports VBScript = "  + browser.VBScript + "\n" 
    + "Supports JavaScript = "  + 
     browser.EcmaScriptVersion.ToString() + "\n" 
    + "Supports Java Applets = " + browser.JavaApplets + "\n" 
    + "Supports ActiveX Controls = " + browser.ActiveXControls 
      + "\n" 
    + "Supports JavaScript Version = " + 
     browser["JavaScriptVersion"] + "\n"; 

https://msdn.microsoft.com/en-us/library/3yekbd5b.aspx

+0

(不确定对_HTTP_X_FORWARDED_FOR_和_spoofing_有什么想法。) – greybeard