C# 获取客户端IPv4地址的示例代码
程序员文章站
2022-03-27 09:28:21
网上找了一些获取客户端ip的方法,但本地测试时,返回的是ipv6的表示方法"::1":host文件里面:# ::1 localhost后来找了获取ipv4的方法就可以了,比较好用:public sta...
网上找了一些获取客户端ip的方法,但本地测试时,返回的是ipv6的表示方法"::1":
host文件里面:# ::1 localhost
后来找了获取ipv4的方法就可以了,比较好用:
public static string getclientipv4address() { string ipv4 = string.empty; foreach (ipaddress ip in dns.gethostaddresses(getclientip())) { if (ip.addressfamily.tostring() == "internetwork") { ipv4 = ip.tostring(); break; } } if (ipv4 != string.empty) { return ipv4; } // 利用 dns.gethostentry 方法,由获取的 ipv6 位址反查 dns 纪录, // 再逐一判断何者为 ipv4 协议,即可转为 ipv4 位址。 foreach (ipaddress ip in dns.gethostentry(getclientip()).addresslist) //foreach (ipaddress ip in dns.gethostaddresses(dns.gethostname())) { if (ip.addressfamily.tostring() == "internetwork") { ipv4 = ip.tostring(); break; } } return ipv4; } public static string getclientip() { if (null == httpcontext.current.request.servervariables["http_via"]) { return httpcontext.current.request.servervariables["remote_addr"]; } else { return httpcontext.current.request.servervariables["http_x_forwarded_for"]; } }
以上就是c# 获取客户端ipv4地址的示例代码的详细内容,更多关于c# 获取ipv4地址的资料请关注其它相关文章!