Не катите свое собственное решение.Используйте библиотеку socket
.
import socket
socket.inet_pton(socket.AF_INET, "127.0.0.1")
Она будет выдавать исключения, когда не сможет правильно проанализировать адрес, а написание собственных анализаторов для вещей - всего лишь рецепт проблем в будущем.
Выполнение этого также упрощает переход вашего кода на IPv6.И написание собственного парсера адресов для IPv6 было бы очень плохой идеей, потому что адреса IPv6 сложны и имеют несколько странных угловых случаев.
Редактировать: Очевидно, это не работает в Windows.Я не уверен, как вы должны анализировать адреса IPv6 в Windows, но все еще есть вызов библиотеки, который может анализировать адреса IPv4.Это socket.inet_aton
, и вы должны использовать его, если socket.inet_pton
не существует, вместо того, чтобы переходить к собственному решению.