HttpContext IP Проблема - PullRequest
       12

HttpContext IP Проблема

4 голосов
/ 12 ноября 2009

У меня проблема при использовании HttpContext.Current.Request.UserHostAddress, иногда возвращает «192.168.0.17» (IPv4), а иногда возвращает «fe80 :: 99be: a05d: 7938: 1c30% 8» (IPv6), вызывая из тот же компьютер и навигатор.

Что я делаю, чтобы всегда возвращать IPv4?

Ответы [ 2 ]

3 голосов
/ 12 ноября 2009

Проверьте этот пост на 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;
  }
2 голосов
/ 12 ноября 2009

Нашел решение, которое кто-то взломал. Не могу сказать, сработает ли это, хотя =)

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

...