golang distinguer IPv4 IPv6

Pour un programme sur lequel je travaille, je dois vérifier si une adresse IP (l'adresse IP qui me relie à l'Internet) est public ou privé. Pour cela, j'ai besoin de distinguer si l'adresse IP IPv4 ou IPv6.

Je voulais le vérifier par la longueur de la propriété intellectuelle:

conn, err := net.Dial("udp", "8.9.10.11:2342")
if err != nil {
    fmt.Println("Error", err)
}

localaddr := conn.LocalAddr()

addr, _ := net.ResolveUDPAddr("udp", localaddr.String())

ip := addr.IP

fmt.Println(ip)
fmt.Println(len(ip))

Bien, mon IP est 192.168.2.100, donc IPv4, mais len(ip) me dit que la longueur est de 16 ans qui serait IPv6.
Quelle est mon erreur? Toute autre méthode existe pas de distinguer entre l'IPv4 et l'IPv6 qui fonctionne toujours?

InformationsquelleAutor user3479275 | 2014-03-30