-1

16 進数を表す次の文字列があります。

00000000ff00ff00000900000600020a

netパッケージでIPv6に変換しようとしています

私が期待している結果は(ビッグエンディアン)です:

20a:600::9:ff00:ff00::

私はこれを試しました:

    ip := "00000000ff00ff00000900000600020a"
    res := make(net.IP, net.IPv6len)
    var err error
    res,err = hex.DecodeString(ip)
    if err != nil {
        fmt.Println("error")
    }
    for i := 0; i < 16/2; i++ {
        res[i], res[16-1-i] = res[16-1-i], res[i]
    }
    fmt.Println(res.String())

しかし、私はこれを取得しています:

a02:6:0:900:ff:ff::

ありがとう!

4

2 に答える 2