Golang: net.ParseIP () - PullRequest
       18

Golang: net.ParseIP ()

0 голосов
/ 06 мая 2018

некоторые совершенно допустимые адреса IPv6 считаются IPv4 по net.ParseIP (), например, 0000: 0000: 0000: 0000: 0000: FFFF: 0100: 0000 / :: FFFF: 0100: 0. (см. https://play.golang.org/p/57jAJVSIrHF для простого примера)

Какой самый идиоматичный способ справиться с этой ситуацией? Пакет net не экспортирует большую часть функциональности, поэтому перезапись net.Parse приведет к значительному дублированию кода.

Заранее благодарю за помощь!

С наилучшими пожеланиями,

Stefan

1 Ответ

0 голосов
/ 06 мая 2018

То, что вы считаете абсолютно действительными адресами IPv6, такими как ::ffff:0100:0000, на самом деле являются адресами IPv4, отображаемыми в пространство IPv6, обычно записываемое как ::ffff:1.0.0.0. Таким образом, по сути, это адрес IPv4. См. Раздел о IPv4-сопоставленных IPv6-адресах в Википедии: IPv6 для получения дополнительной информации.

...