我正在使用这些.NET Framework类来获取我机器的 IP 地址。
Dns.GetHostAddresses(Dns.GetHostName())
Run Code Online (Sandbox Code Playgroud)
我有一个 VirtualBox 适配器,它同时具有 IPv4 和 IPv6 地址。使用 .NET 代码,我将 IPv6 地址作为fe80::71a3:2b00:ddd3:753f%16
注意到末尾的 %16 了吗?
但是,如果我使用相同的查询WMI,我得到的地址为'fe80::71a3:2b00:ddd3:753f'
那么,%16 有什么特殊意义吗?
编辑:
我只是对此有更多的观察。它们与斯蒂芬詹宁斯在他的回答中所说的非常吻合。
我安装了 Vmware 以查看它发出的 IPv6 地址。地址是:fe80::3dd0:7f8e:57b7:34d5%19
fe80::b059:65f4:e877:c40%20
显然,% 之后的数字不是某种十六进制表示。我使用 Wmi 检查了网络适配器的所有可用属性,发现这些数字与每个网络适配器的 InterfaceIndex 属性完全相同。根据MSDN,它唯一标识每个网络适配器,这个属性是在 Vista 中引入的。
仍然让我感到困惑的是,为什么 IPAddress 类允许您以该格式创建 IP 地址,除非它有效。斯蒂芬提供了答案。数字是范围 ID。IPAddress 有一个接受地址和范围 ID 的构造函数。
哦,所有这三个网络适配器都是本地链接。通过 ipconfig 确认
凉爽的。那很有趣!!
在我的 Mac 上,每个 IPv6 地址都包含特定计算机(不是我的路由器)的 MAC 地址。诸如ipv6-test.com 之类的网站不仅显示它,而且还告诉我它属于 Apple 计算机。
这感觉就像一个超级 cookie,也可能适用于其他操作系统。如何避免暴露我的 MAC 地址?
背景:MAC 地址并不明显。喜欢2001:0db8:1:2:60:8ff:fe52:f9d8:
0060:08ff:fe52:f9d8。ff:fe从中间剥离零件。如果这些字节不存在,那么就没有 MAC 地址。0x00(00000000) 变成0x02(00000010)。60:8ff:fe52:f9d8转换回 MAC 地址02:60:08:52:f9:d8。注意:自 macOS 10.12 Sierra 起,据 Ars Technica 称,Apple 采用了一种新方法来生成不基于 MAC 地址的稳定地址, Windows 显然已经这样做了多年。
电脑的MAC地址可以追溯到电脑的序列号吗?
我有试图侵入我的无线路由器的 MAC 地址。知道计算机的序列号可能会帮助我找到所有者。这可能吗?