Ja, es gibt ipaddr
Modul, mit dem Sie überprüfen können, ob eine Zeichenfolge eine IPv4 / IPv6-Adresse ist, und um deren Version zu erkennen.
Aber das ist kein Standardmodul, daher ist es nicht immer möglich, es zu benutzen.
Sie versuchen auch, das Standardmodul socket
zu verwenden:
Für IPv6-Adressen müssen Sie socket.inet_pton(socket.AF_INET6, address)
verwenden.
Ich möchte auch darauf hinweisen, dass inet_aton
versucht, Adressen wie 10
, 127
usw., die nicht wie IP-Adressen aussehen, zu konvertieren (und wirklich zu konvertieren).
für IPv4 Sie können
verwenden %Vor% Wenn es eine Ausnahme auslöst, ist some_string
keine gültige IP-Adresse
Für IPv6 können Sie Folgendes verwenden:
%Vor% erneut, es wird eine Ausnahme ausgelöst, wenn some_string
keine gültige Adresse ist
IPv4 + IPv6-Lösung, die nur auf der Standardbibliothek basiert. Gibt 4
oder 6
zurück oder erhöht ValueError
.