Python: список адресуемых IP-адресов - PullRequest
3 голосов
/ 24 декабря 2010

Какой самый Pythonic способ создать список адресуемых IP-адресов для IP-сети netaddr или IP-сети netaddr.

Если я их использую, то он включает адреса подсети и широковещания:

hosts = list(IPRange('212.55.64.0','212.55.127.255'))
hosts = IPNetwork('192.168.0.1/24')

Итак, что мне нужно для IPNetwork (192.168.0.0/27), это список с 192.168.0.1 по192.168.0.31 обратите внимание, что 192.168.0.0 и 192.168.0.32 не должны быть включены.

EDIT

Спасибо за информацию о том, как это сделать с IPy.Кто-нибудь знает, можно ли это сделать с помощью netaddr?

Ответы [ 3 ]

1 голос
/ 07 августа 2013

Ниже приведен быстрый скрипт для выполнения того, что вы хотите, используя netaddr
(Python 2.7, linux)

from netaddr import *

def addr(address, prefix):
    ip = IPNetwork(address)
    ip.prefixlen = int(prefix)
    return ip

myip = addr('192.168.0.0', '27')

for usable in myip.iter_hosts():
    print '%s' % usable
1 голос
/ 24 декабря 2010
0 голосов
/ 28 декабря 2010

После небольшого исследования я нашел следующий способ:

 l = list(netaddr.IPNetwork('192.168.0.0/27').iter_hosts())
...