4

I have a problem when I use HttpContext.Current.Request.UserHostAddress, some times returns "192.168.0.17" (IPv4) and some times returns "fe80::99be:a05d:7938:1c30%8" (IPv6), calling from the same computer and navigator.

What I do to return always IPv4?

Cesar
  • 3,499
  • 2
  • 28
  • 42

2 Answers2

3

Check out this post on 4GuysFromRolla and see if it helps at all. I think this is the information you're looking for.

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;
  }
David Hedlund
  • 125,403
  • 30
  • 199
  • 217
Nathan Wheeler
  • 5,846
  • 2
  • 28
  • 47
2

Found a solution that somebody hacked up. Can't say if it'll work, tho =)

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

David Hedlund
  • 125,403
  • 30
  • 199
  • 217