Я просматриваю старую статью, в которой показано, как сортировать строки IP-адресов, используя числовое значение вместо текста.
Приведенный пример:
#!/usr/bin/python
import ipaddress
with open('file.txt', 'r') as f:
ips = sorted(ipaddress.ip_address(line.strip()) for line in f)
print('\n'.join(map(str, ips)))
В моем случае IP-адреса являются первой частью списка строк iplist, а не считываются из файла строк.
172.16.0.186 be:b6:5a:34:ee:3a
172.16.0.19 5c:cf:7f:59:f6:fd
172.16.0.212 48:a2:e6:b0:6d:3f
172.16.0.222 80:6a:10:3:d8:19
172.16.0.223 34:85:18:5d:3f:78
172.16.0.229 34:19:4d:1c:53:a6
172.16.0.27 c0:4e:30:1e:5:70
172.16.0.28 84:f3:eb:4e:38:b5
172.16.0.29 7c:9e:bd:bc:cf:44
172.16.0.30 9c:76:13:b7:39:97
Я попытался изменить приведенный выше код, чтобы перебрать iplist и отрезать начало строки, содержащей только IP-адрес:
ips = sorted(ipaddress.ip_address(line[:16].strip()) for line in iplist)
Это приводит к ошибке «AttributeError: объект 'str' не имеет атрибута 'ip_address'»
Просмотр документации для ipaddress >, похоже, что ipaddress.ip_address() действительно принимает строку.
ipaddress.ip_address('192.168.0.1')
IPv4Address('192.168.0.1')
Подробнее здесь: https://stackoverflow.com/questions/793 ... ip-address
Использование модуля Python ipaddress для сортировки строк, начинающихся с IP-адреса ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как заменить System.Net.IPAddress.Any в .Net Core и прослушивать все сетевые адаптеры
Anonymous » » в форуме C# - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-