из конструкций быглядит более адекватно?
if all(num.isdigit() for num in ip_addr.split(".")):
смотря что нужно, но можно так: try: addr = ipaddress.ip_address(ip_addr)
Судя по названию переменной - обе неуместны. А так - первая адекватнее.
вместе с IP может быть введена маска через "/", поэтому строку всячески проверяю
>>> import ipaddress >>> ipaddress.ip_address('192.168.0.1/16') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/denis/.pyenv/versions/3.11.6/lib/python3.11/ipaddress.py", line 54, in ip_address raise ValueError(f'{address!r} does not appear to be an IPv4 or IPv6 address') ValueError: '192.168.0.1/16' does not appear to be an IPv4 or IPv6 address
вот и я посмотрел, что маску не парсит
Обсуждают сегодня