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地址的资料请关注毛票票其它相关文章!