Какой ScopeID поддерживает IPAddress? - PullRequest
0 голосов
/ 13 октября 2018

Я читаю документ System.Net.IPAddress, и я озадачен.

В документах постоянно говорится о вещи под названием scopeId, которая представляет собой 64-битное целое число:

IPAddress.ScopeId Property

Получает или задает идентификатор области IPv6-адреса.

ArgumentOutOfRangeException [if] scopeId < 0 - или - scopeId > 0x00000000FFFFFFFF

из свойство IPAddress.ScopeId

Если длина адреса равна 4, IPAddress(Byte[]) создает адрес IPv4;в противном случае создается адрес IPv6 с областью действия 0.

public IPAddress (byte[] address, long scopeid) Инициализирует новый экземпляр класса IPAddress с адресом, указанным в виде массива Byte и указанным идентификатором области.

из IPAddress Contstructors

Я читаю адрес IPv6 § Области адресов Статья в Википедии и не могу согласовать:

Каждый адрес IPv6, кроме неуказанного адреса(::), имеет «область действия», которая указывает, в какой части сети он действителен.

Для многоадресных адресов четыре младших бита второго октета адреса (ff0s::) идентифицируют область адреса, т. Е. Домен, в котором должен распространяться многоадресный пакет.

Согласно Википедии, область видимости - это часть самого адреса, в то время как в соответствии с C # документами область видимости представляет собой целое число , отдельное от самого адреса и его невозможно получить изэтот адрес (если указаны только байты адреса, область действия установлена ​​на 0).Согласно Википедии, область видимости - это четырехбитное значение, в то время как C # допускает значения до 0x00000000FFFFFFFF!

Что здесь происходит?Может показаться, что область видимости документов C # отличается от области, о которой говорит Википедия.

Что это за штука с областью видимости?

...