#python #python-2.7
#python #python-2.7
Вопрос:
Я хочу вычислить количество IP-адресов из 2 заданных IP-адресов.
Пример: 127.0.1.10 и 127.0.0.200 — это 67 IP-адресов..
Какой простой способ сделать это?
Я видел другие примеры, но я ищу пример Python. Спасибо.
Комментарии:
1. Итак, вы, по сути, спрашиваете, как выполнить вычитание по базе 256? Что вы уже пробовали?
2. Преобразуйте IP-адреса в числа, затем вычтите.
3. для более общего вычисления IP, например, перечисления IP-адресов в
/24
сети, смотрите docs.python.org/3/howto/ipaddress.html
Ответ №1:
>>> import socket
>>> def iptoint(ip):
... return int(socket.inet_aton(ip).encode('hex'), 16)
...
>>> iptoint('127.0.0.200')
2130706632
>>> iptoint('127.0.1.10') - iptoint('127.0.0.200')
66
>>> def ipdistance(ip1, ip2):
... return abs(iptoint(ip1) - iptoint(ip2)) 1
...
>>> ipdistance('127.0.1.10', '127.0.0.200')
67