string HostName = string.Empty; string ip = string.Empty; string ipv4 = String.Empty; if (!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"])) ip = Convert.ToString(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]); if (string.IsNullOrEmpty(ip)) ip = Request.UserHostAddress; // 利用 Dns.GetHostEntry 方法,由获取的 IPv6 位址反查 DNS 纪录, // 再逐一判断何者为 IPv4 协议,即可转为 IPv4 位址。 foreach (IPAddress ipAddr in Dns.GetHostEntry(ip).AddressList) { if (ipAddr.AddressFamily.ToString() == "InterNetwork") { ipv4 = ipAddr.ToString(); } } HostName = "主机名: " + Dns.GetHostEntry(ip).HostName + " IP: " + ipv4;
在本机进行程序代码调试测试,其中字符串ip会显示为::1,是IPv6的IP地址格式,相当于127.0.0.1。最终处理成IPv4的显示地址。
时间: 2024-10-12 23:33:06