IPAddress支持什么ScopeID?

时间:2018-10-13 08:22:51

标签: c# ip-address

我正在阅读System.Net.IPAddress的文档,感到困惑。

文档们一直在谈论一个叫做scopeId的东西,它是一个64位整数:

  

IPAddress.ScopeId Property

     

获取或设置IPv6地址范围标识符。

     

ArgumentOutOfRangeException [如果] scopeId < 0-或-scopeId > 0x00000000FFFFFFFF

来自IPAddress.ScopeId property

  

如果地址的长度为4,则IPAddress(Byte[])构造一个IPv4地址;否则,将构造范围为0的IPv6地址。

     

public IPAddress (byte[] address, long scopeid)使用指定为IPAddress数组的地址和指定的作用域标识符初始化Byte类的新实例。

来自IPAddress Contstructors

我正在阅读Wikipedia上的IPv6 address § Address scopes文章,但无法调和:

  

除未指定的地址(::)之外,每个IPv6地址都有一个“作用域”,该作用域指定了它在网络的哪个部分有效。

     

对于多播地址,第二个地址八位字节(ff0s::)的四个最低有效位标识地址范围,即应在其中传播多播数据包的域。

根据Wikipedia,作用域是地址本身的部分,而根据C#文档,作用域似乎是与地址本身成整数 eparate 且不可能从该地址派生(如果仅提供地址字节,则将范围设置为0)。根据Wikipedia的介绍,作用域为四位值,而C#允许的值最高为0x00000000FFFFFFFF

这是怎么回事?似乎C#文档所讨论的范围与Wikipedia所讨论的范围有所不同。

这是什么“范围”?

0 个答案:

没有答案