【问题标题】:Get IP Address, Browser Type MVC 5获取 IP 地址,浏览器类型 MVC 5
【发布时间】:2015-09-07 11:48:29
【问题描述】:

我需要在 MVC 5 中获取本地系统 IP 地址和浏览器代理(firefox、chorme、ie 等)。搜索在 MVC5 中不起作用的 Google Request.ServerVariables["REMOTE_ADDR"]

【问题讨论】:

  • Request.Browser 是您需要检查浏览器信息的内容。 Request.UserHostAddress 用于 IP 地址。在这两种情况下,您可能无法保证正确的信息,因为代理不会为您提供客户端机器和浏览器的正确 IP 地址 用户代理始终可以被操纵。如果我的观点对您有帮助,请告诉我。

标签: asp.net-mvc-5


【解决方案1】:

你正在寻找类似获取IP地址的东西

HttpRequest.UserHostAddress Property

并检查此浏览器检测51Degrees.Mobi Foundation

【讨论】:

    【解决方案2】:

    获取客户端IP地址

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

    获取客户端用户代理。

    var userAgent = Request.UserAgent;
    

    【讨论】:

      【解决方案3】:

      要获取 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

      【讨论】:

      • (不确定如何看待 HTTP_X_FORWARDED_FOR 和 spoofing。)
      猜你喜欢
      • 2010-10-19
      • 2014-08-04
      • 2013-02-14
      • 2017-06-20
      • 2016-06-25
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多