Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 13, 2018 02:55:37

ss100s
Зарегистрирован: 2016-02-29
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Разбить подсеть на диапазоны ip

Например 192.168.0.0/13 на

 192.168.0.0-255
192.168.1.0-255
.....
192.175.255.0-254
Может есть библиотека с таким функционалом?

Офлайн

#2 Апрель 13, 2018 04:10:23

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Разбить подсеть на диапазоны ip

  
>>> import ipaddress
>>> import itertools
>>> 
>>> net = ipaddress.ip_network('192.168.0.0/13')
>>> 
>>> out = []
>>> it = iter(net)
>>> while True:
...     tup = tuple(itertools.islice(it, 0, 256))
...     if not tup:
...         break
...     out.append(tup)
... 
>>> len(out)    
2048
>>> out[0][0], out[0][-1]
(IPv4Address('192.168.0.0'), IPv4Address('192.168.0.255'))
>>> out[1][0], out[1][-1]
(IPv4Address('192.168.1.0'), IPv4Address('192.168.1.255'))
>>> out[2][0], out[2][-1]
(IPv4Address('192.168.2.0'), IPv4Address('192.168.2.255'))
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version