在啟用了IPV6的機器上獲取客戶端ipv4位址

2021-09-08 15:46:31 字數 930 閱讀 4152

從 windows vista 首開預設啟用ipv6的先例,而在 ipv4、ipv6 兩者共存的環境下,ipv6 具有較高的優先順序,因此獲取的 ip 位址就會以 ipv6 格式為主。好在為了解決這問題,不必刻意把 ipv6 關掉。同樣的問題是host 檔案裡對localhost的解析,預設返回的是ipv6的位址。具體的說明可以看這篇文章returning an ipv4 address in an ipv6-enabled environment ,文中也有**,執行起來不符合預期,修正的**如下:

using system;

using system.net;

using system.web;

public class ipnetworking }

if (ipv4 != string.empty)

// 原**使用 dns.gethostname 方法取回的是 server 端資料,非 client 端。

// 改為利用 dns.gethostentry 方法,由獲取的 ipv6 位址反查 dns 記錄,

// 再逐一判斷是否屬於 ipv4 協議定,如果是轉換為 ipv4 位址。

foreach (ipaddress ip in dns.gethostentry(getclientip()).addresslist)

//foreach (ipaddress ip in dns.gethostaddresses(dns.gethostname())) }

return ipv4;

} ///

/// 取得客戶端主機位址

///

public static string getclientip()

else }

}ipv6取代ipv4是趨勢,在沒有大規模部署ipv6,以ipv4為主的環境下以上**可以救急。

Ubuntu啟用IPv6上google的方法

pv6就是我們通常所說的網際網路協議,是tcp ip的核心協議,那麼在linux下如何開啟ipv6呢?下面以ubuntu為例,給大家介紹下ubuntu啟用ipv6的方法。方法 sudo apt get install miredo ifconfig 在結果中應該能看見乙個叫 teredo 的虛擬網絡...

Ubuntu啟用IPv6上google的方法

ipv6就是我們通常所說的網際網路協議,是tcp ip的核心協議,那麼在linux下如何開啟ipv6呢?下面以ubuntu為例,給大家介紹下ubuntu啟用ipv6的方法。方法 sudo apt get install miredo ifconfig 在結果中應該能看見乙個叫 teredo 的虛擬網...

在Ubuntu上禁用IPv6

禁用 ipv6 方案1 編輯檔案 etc sysctl.conf sudo gedit etc sysctl conf 在檔案的最後加入下面的行。ipv6 disabled net.ipv6 conf all disable ipv6 1 net.ipv6 conf default disable ...