C# 獲取客戶端IPv4地址的示例程式碼
阿新 • • 發佈:2020-12-20
網上找了一些獲取客戶端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地址的資料請關注我們其它相關文章!