登录
首页 >  Golang >  Go问答

如何获得IPv4映射IPv6的非点分四段式字符串表示形式?

来源:stackoverflow

时间:2024-02-08 14:03:26 446浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《如何获得IPv4映射IPv6的非点分四段式字符串表示形式?》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

例如,考虑一下这个 ipv4 映射的 ipv6 地址:::ffff:7f7f:7f7f。在我测试过的所有浏览器的地址栏中提交 http://[::ffff:7f7f:7f7f] 时,格式均保留:

但是,netip 包(更具体地说,netip.addrstring 方法)通过以 ipv4 点十进制表示法写入其最低有效 32 位来格式化相关地址,如下所示: ::ffff:127.127 .127.127

package main

import (
    "fmt"
    "log"
    "net/netip"
)

func main() {
    ip, err := netip.ParseAddr("::ffff:7f7f:7f7f")
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(ip) // ::ffff:127.127.127.127
}

(游乐场)

我需要复制浏览器地址栏格式 ipv4 映射的 ipv6 地址的方式。 有没有办法让 netip 格式化 ::ffff:7f7f:7f7f,而不是 ::ffff:127.127.127.127,而是 ::ffff:7f7f:7f7f


正确答案


首先,请记住,不允许在网络上使用 IPv4 映射的 IPv6 地址,如 IANA IPv6 特殊用途地址注册中心,请注意,它们不能用作源地址或目标地址,不能可以转发或全局路由,并且它们由 IP 本身保留它们不是实际的 IPv6 地址,只是 IPv6 格式的 IPv4 地址的表示形式,以便拥有公共地址存储,例如数据库。它们不应该在您的浏览器中工作。

好了,本文到此结束,带大家了解了《如何获得IPv4映射IPv6的非点分四段式字符串表示形式?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>