go - 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 会导致大量代码重复。
预先感谢您的帮助!
最好的祝福,
斯特凡
解决方案
您认为完全有效的 IPv6 地址::ffff:0100:0000
实际上是映射到 IPv6 空间的 IPv4 地址,通常写为::ffff:1.0.0.0
. 因此本质上它是一个 IPv4 地址。有关更多信息,请参阅Wikipedia:IPv6 中有关IPv4 映射的 IPv6 地址的部分。
推荐阅读
- javascript - 我想显示输入文件名而不是完整路径
- execution - GraphDB free 不能在 Windows 10 上运行
- java - 有没有办法减少多个类型参数?
- node.js - jsondiffpatch nodejs中的字符串差异
- javascript - 我怎样才能切换动态克隆或生成的“复选框”?
- jquery - 达到 maxlength 错误时将焦点移到 keyup 上
- c# - C# Directory EnumerateFiles:掩码“*.*”和“*”的区别?
- ios - Xamarin PCL 项目 - 我的 iOS 应用程序未在 iOS 12.1 及更低版本中启动..它在 12.1 及更高版本中运行良好,直到最新的 13.2
- java - 在 kotlin 中创建 Lambda 函数
- android - 我可以在大型项目中使用 SVG 而不是 PNG