C# 获取客户端IPv4地址的示例代码
网上找了一些获取客户端IP的方法,但本地测试时,返回的是IPv6的表示方法"::1":
Host文件里面:# ::1 localhost
后来找了获取IPv4的方法就可以了,比较好用:
publicstaticstringGetClientIPv4Address()
{
stringipv4=String.Empty;
foreach(IPAddressipinDns.GetHostAddresses(GetClientIP()))
{
if(ip.AddressFamily.ToString()=="InterNetwork")
{
ipv4=ip.ToString();
break;
}
}
if(ipv4!=String.Empty)
{
returnipv4;
}
//利用Dns.GetHostEntry方法,由获取的IPv6位址反查DNS纪录,
//再逐一判断何者为IPv4协议,即可转为IPv4位址。
foreach(IPAddressipinDns.GetHostEntry(GetClientIP()).AddressList)
//foreach(IPAddressipinDns.GetHostAddresses(Dns.GetHostName()))
{
if(ip.AddressFamily.ToString()=="InterNetwork")
{
ipv4=ip.ToString();
break;
}
}
returnipv4;
}
publicstaticstringGetClientIP()
{
if(null==HttpContext.Current.Request.ServerVariables["HTTP_VIA"])
{
returnHttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
else
{
returnHttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
}
}
以上就是C#获取客户端IPv4地址的示例代码的详细内容,更多关于c#获取ipv4地址的资料请关注毛票票其它相关文章!