Есть ли простой способ вычислить количество IP-адресов из 2 заданных IP-адресов?

#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