![]() |
1
3
你也可以检查邻居的桌子。(
编辑 :这听起来像是检查邻居表对您来说是阻力最小的路径;如果您正在接受来自intranet的连接,然后掉头检查邻居表,您可以合理地确定,如果邻居是本地的,它将存在于表中。如果你查一下邻居的桌子, 小心 整个IPv4 internet 同样,IPv6地址没有“网络掩码”的概念,因为on-link前缀表与地址分配是分开的。 然而 ,如果你有一个服务器在某处,你可以99%肯定它是在一个服务器上 /64
编辑2 我已经编写了一些代码来解析IPv6路由表并发布了它 here |
![]() |
2
2
IPv6中IPv4网络掩码的道德等价物称为 前缀长度 . (实际上,我们也喜欢讨论IPv4中的前缀长度而不是网络掩码,但有些人还没有收到备忘录。) IPv6中另一个没有IPv4的问题是,默认路由器通过回答来自主机的路由器请求查询来公布它们在链路上的存在。主机保留了一个列表,其中列出了他们通过这种方式找到的所有默认路由器以及它们的有效和首选生存期。路由器也可以公布零个、一个或多个前缀,作为默认路由器,主机保留这些前缀的列表及其关联的路由器和各自的有效和首选生存期。 每个前缀在播发中都有两个辅助位A和L,当主机将它们添加到前缀列表中时,它们会被主机合并。A=1位表示是否允许主机自动配置具有该前缀的接口地址,而A=0表示要求主机通过DHCPv6或手动获取具有该前缀的地址。L=1位表示前缀为“链路上”,主机可以使用邻居发现(相当于ARP的IPv6)通过网络直接发送,而L=0表示前缀为“链路外”,主机需要将该前缀的所有流量发送到默认路由器。
长话短说:如果你想知道一个IPv6地址是“链接上”的,那么你必须遍历IPv6前缀列表,将每个前缀与地址进行比较,还要查看L位以确保它是链接上的前缀。唉,我只知道BSD系统查看前缀列表的方式,即。
|
![]() |
3
2
我一直在看wmi文档,试图找到ipv6前缀,我也很难找到它。不过,我有IPv4的工作代码。 我想您可以放心地假设该网段的前缀是/64。如果你这样做,你可以只比较每个地址的前8个字节。运行应用程序的单个本地网络通常是a/64,即使点到点链接通常也会给出一个完整的/64范围,即使只使用了2个。 |
![]() |
4
1
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 3 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 3 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 3 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 4 月前 |