C#中的IPv6地址范围

3
1个回答

3
IPv6与IPv4不同,约定俗成地不使用子网掩码格式。但是你仍然可以按照这种方式进行可视化。
在IPv6中,/64的等效“子网掩码”为ffff:ffff:ffff:fffff:0:0:0:0。但不要尝试向任何IPv6用户引用它,因为没有人知道你的意思。也不要尝试将其粘贴到任何IPv6配置中-人们只会使用像/64、/48、/32等前缀。(任何小于/64的东西,例如/96,在LAN环境中很少使用,并且已正式弃用。)
以下是我刚写的便于理解IPv6前缀的ASCII图表:
2001:db8:1000:2000:3000:4000:5000:6000/32
<--net--><-------------------host---->

2001:db8:1000:2000:3000:4000:5000:6000/48
<--network--> <--------------host---->

2001:db8:1000:2000:3000:4000:5000:6000/64
<--network-------> <---------host---->

2001:db8:1000:2000:3000:4000:5000:6000/96
<--network------------> <----host---->

希望以上内容与您所想象的IPv4子网相同(实际上几乎完全相同)。事实上,在头脑中计算IPv6稍微容易一些,因为IPv6使用十六进制,因此如果您坚持使用可被4整除的前缀,您可以在nybble(即数字)边界处划分子网-这是IPv4无法做到的! 我承认我的答案中没有任何关于C#的具体信息。尽管如此,它应该能让您找到正确的方向:指定前缀长度。

感谢提供的信息,最终我选择了使用掩码(如ffff:ffff::)来解决问题。 - Lloyd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接