首页 > 解决方案 > Golang:net.ParseIP()

问题描述

一些完全有效的 IPv6 地址被 net.ParseIP() 视为 IPv4,例如 0000:0000:0000:0000:0000:ffff:0100:0000 / ::ffff:0100:0。(有关简单示例,请参阅https://play.golang.org/p/57jAJVSIrHF )

处理这种情况的最惯用的方法是什么?net 包并没有导出大部分功能,所以重写 net.Parse 会导致大量代码重复。

预先感谢您的帮助!

最好的祝福,

斯特凡

标签: goipv6

解决方案


您认为完全有效的 IPv6 地址::ffff:0100:0000实际上是映射到 IPv6 空间的 IPv4 地址,通常写为::ffff:1.0.0.0. 因此本质上它是一个 IPv4 地址。有关更多信息,请参阅Wikipedia:IPv6 中有关IPv4 映射的 IPv6 地址的部分。


推荐阅读