golang unterscheidet IPv4 IPv6

Für ein Programm mit dem ich arbeite, habe ich, um zu überprüfen, ob eine IP-Adresse (die IP, die verbindet mich mit dem Internet) privat oder öffentlich ist. Für dass, ich brauche, um zu unterscheiden, ob eine IP-Adresse für IPv4-oder IPv6.

Wollte ich es überprüfen, indem Sie die Länge des IP -:

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))

Gut, meine IP ist 192.168.2.100, also IPv4, aber len(ip) sagt mir, dass die Länge ist 16, das wäre IPv6.
Was ist mein Fehler? Jede andere Methode existiert, um zu unterscheiden zwischen IPv4-und IPv6-das funktioniert immer?

InformationsquelleAutor der Frage user3479275 | 2014-03-30

Schreibe einen Kommentar