Нахождение идентификатора подсети с учетом IP-адреса и CIDR - PullRequest
0 голосов
/ 27 июня 2019

Учитывая IP-адрес хоста и его CIDR (например, 143.204.181.28 и 143.204.176.0/21 соответственно), можно получить идентификатор подсети, к которой принадлежит хост, и диапазон IP-адресов, принадлежащихта же подсеть?Если это возможно, я буду признателен, если кто-нибудь предоставит код на Python, демонстрирующий, как этого добиться.

1 Ответ

0 голосов
/ 27 июня 2019

Вы можете использовать встроенный модуль ipaddress ( doc ):

import ipaddress

addr = ipaddress.ip_address('143.204.181.28')
net = ipaddress.ip_network('143.204.176.0/21')

for s in net.subnets():
    if addr in s:
        print('subnet:', s)
        ips = [*s]
        print('Subnet contains {} IPs'.format(len(ips)))

Печать:

subnet: 143.204.180.0/22
Subnet contains 1024 IPs

IP-адреса в переменной ips.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...