我在使用时遇到问题HttpContext.Current.Request.UserHostAddress
,有时返回“192.168.0.17”(IPv4),有时返回“fe80::99be:a05d:7938:1c30%8”(IPv6),从同一台计算机和导航器调用。
我该怎么做才能始终返回 IPv4?
我在使用时遇到问题HttpContext.Current.Request.UserHostAddress
,有时返回“192.168.0.17”(IPv4),有时返回“fe80::99be:a05d:7938:1c30%8”(IPv6),从同一台计算机和导航器调用。
我该怎么做才能始终返回 IPv4?
查看 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;
}
找到了有人破解的解决方案。不能说它是否会起作用,尽管=)
http://www.eggheadcafe.com/software/aspnet/30078410/request-object.aspx