1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
import types
from netaddr import IPNetwork, cidr_merge
def test_ipnetwork_cidr_merge():
ip_list = (
list(IPNetwork('fe80::/120'))
+ [
IPNetwork('192.0.2.0/24'),
IPNetwork('192.0.4.0/25'),
IPNetwork('192.0.4.128/25'),
]
+ list(map(str, IPNetwork('192.0.3.0/24')))
)
assert len(ip_list) == 515
assert cidr_merge(ip_list) == [
IPNetwork('192.0.2.0/23'),
IPNetwork('192.0.4.0/24'),
IPNetwork('fe80::/120'),
]
def test_subnetting():
ip = IPNetwork('172.24.0.0/23')
assert isinstance(ip.subnet(28), types.GeneratorType)
subnets = list(ip.subnet(28))
assert len(subnets) == 32
assert subnets == [
IPNetwork('172.24.0.0/28'),
IPNetwork('172.24.0.16/28'),
IPNetwork('172.24.0.32/28'),
IPNetwork('172.24.0.48/28'),
IPNetwork('172.24.0.64/28'),
IPNetwork('172.24.0.80/28'),
IPNetwork('172.24.0.96/28'),
IPNetwork('172.24.0.112/28'),
IPNetwork('172.24.0.128/28'),
IPNetwork('172.24.0.144/28'),
IPNetwork('172.24.0.160/28'),
IPNetwork('172.24.0.176/28'),
IPNetwork('172.24.0.192/28'),
IPNetwork('172.24.0.208/28'),
IPNetwork('172.24.0.224/28'),
IPNetwork('172.24.0.240/28'),
IPNetwork('172.24.1.0/28'),
IPNetwork('172.24.1.16/28'),
IPNetwork('172.24.1.32/28'),
IPNetwork('172.24.1.48/28'),
IPNetwork('172.24.1.64/28'),
IPNetwork('172.24.1.80/28'),
IPNetwork('172.24.1.96/28'),
IPNetwork('172.24.1.112/28'),
IPNetwork('172.24.1.128/28'),
IPNetwork('172.24.1.144/28'),
IPNetwork('172.24.1.160/28'),
IPNetwork('172.24.1.176/28'),
IPNetwork('172.24.1.192/28'),
IPNetwork('172.24.1.208/28'),
IPNetwork('172.24.1.224/28'),
IPNetwork('172.24.1.240/28'),
]
def test_supernetting():
ip = IPNetwork('192.0.2.114')
supernets = ip.supernet(22)
assert supernets == [
IPNetwork('192.0.0.0/22'),
IPNetwork('192.0.2.0/23'),
IPNetwork('192.0.2.0/24'),
IPNetwork('192.0.2.0/25'),
IPNetwork('192.0.2.64/26'),
IPNetwork('192.0.2.96/27'),
IPNetwork('192.0.2.112/28'),
IPNetwork('192.0.2.112/29'),
IPNetwork('192.0.2.112/30'),
IPNetwork('192.0.2.114/31'),
]
|