在啟用了IPV6的機(jī)器上獲取客戶端ipv4地址
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
從 Windows Vista 首開默認(rèn)啟用IPV6 的先例,而在 IPv4、IPv6 兩者共存的環(huán)境下,IPv6 具有較高的優(yōu)先級,因此獲取的 IP 地址就會以 IPv6 格式為主。好在為了解決這問題,不必刻意把 IPv6 關(guān)掉。同樣的問題是Host 文件里對localhost的解析,默認(rèn)返回的是ipv6的地址。具體的說明可以看這篇文章Returning an IPv4 Address in an IPv6-Enabled Environment,文中也有代碼,運(yùn)行起來不符合預(yù)期,修正的代碼如下: using System; public class IPNetworking foreach (IPAddress ip in Dns.GetHostAddresses(GetClientIP())) if (ipv4 != String.Empty) // 原代碼使用 Dns.GetHostName 方法取回的是 Server 端資料,非 Client 端。 return ipv4; /// <summary> IPV6取代IPV4是趨勢,在沒有大規(guī)模部署IPV6,以IPV4為主的環(huán)境下以上代碼可以救急。 該文章在 2021/3/10 11:34:41 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |