代码之家  ›  专栏  ›  技术社区  ›  Cesar

httpContext IP问题

  •  4
  • Cesar  · 技术社区  · 15 年前

    我用的时候有问题 HttpContext.Current.Request.UserHostAddress ,有时返回“192.168.0.17”(IPv4),有时返回“fe80::99be:a05d:7938:1c30%8”(IPv6),从同一台计算机和导航器调用。

    我该怎么做才能始终返回IPv4?

    2 回复  |  直到 8 年前
        1
  •  2
  •   David Hedlund    15 年前

    找到了一个解决方案。不能说它是否有效,tho=)

    http://www.eggheadcafe.com/software/aspnet/30078410/request-object.aspx

        2
  •  3
  •   David Hedlund    8 年前

    在4guysfromrolla上查看这篇文章,看看它是否有帮助。我想这是你要找的信息。

    http://aspnet.4guysfromrolla.com/articles/071807-1.aspx

    ~Md5SUM~

     public static string GetIP4Address()
      {
        string IP4Address = String.Empty;
    
        foreach (IPAddress IPA in Dns.GetHostAddresses(HttpContext.Current.Request.UserHostAddress))
        {
          if (IPA.AddressFamily.ToString() == "InterNetwork")
          {
            IP4Address = IPA.ToString();
            break;
          }
        }
    
        if (IP4Address != String.Empty)
        {
          return IP4Address;
        }
    
        foreach (IPAddress IPA in Dns.GetHostAddresses(Dns.GetHostName()))
        {
          if (IPA.AddressFamily.ToString() == "InterNetwork")
          {
            IP4Address = IPA.ToString();
            break;
          }
        }
    
        return IP4Address;
      }