def test_ipv4_network(self): net = pyipcalc.IPNetwork('192.168.0.0/25') net2 = pyipcalc.IPNetwork('192.168.0.1/30') net3 = pyipcalc.IPNetwork('192.168.0.128/25') net4 = pyipcalc.IPNetwork('192.168.0.0/24') self.assertEqual('192.168.0.0/25', net.prefix()) self.assertEqual('192.168.0.0', net.network()) self.assertEqual('192.168.0.1', net.first()) self.assertEqual('192.168.0.126', net.last()) self.assertEqual('192.168.0.127', net.broadcast()) self.assertEqual('255.255.255.128', net.mask()) self.assertEqual(3232235520, pyipcalc.ip_to_int('192.168.0.0')) self.assertEqual('192.168.0.0', pyipcalc.int_to_ip(3232235520, 4)) self.assertEqual('255.255.255.128', net.mask()) def contains(net1, net2): if net1 in net2: return True else: return False self.assertEqual(True, contains(net2, net)) self.assertEqual(False, contains(net3, net)) self.assertEqual(False, contains(net4, net)) self.assertEqual('192.168.0.0/24', pyipcalc.supernet(net, net3).prefix()) self.assertEqual(net[5].prefix(), '192.168.0.5/32') for i, ip in enumerate(net[0:1]): self.assertEqual(ip._ip, 3232235520 + i) for i, ip in enumerate(net[0:3:31]): self.assertEqual(ip._ip, 3232235520 + i * 2)
def test_ipv6_network(self): net = pyipcalc.IPNetwork('fff0::/64') self.assertEqual('fff0:0000:0000:0000:0000:0000:0000:0000/64', net.prefix()) self.assertEqual('fff0:0000:0000:0000:0000:0000:0000:0000', net.network()) self.assertEqual('fff0:0000:0000:0000:0000:0000:0000:0000', net.first()) self.assertEqual('fff0:0000:0000:0000:ffff:ffff:ffff:ffff', net.last()) self.assertEqual( 340199290171201906239764863564210241535, pyipcalc.ip_to_int('fff0:0000:0000:0000:ffff:ffff:ffff:ffff')) self.assertEqual( 'fff0:0000:0000:0000:ffff:ffff:ffff:ffff', pyipcalc.int_to_ip(340199290171201906239764863564210241535, 6))
def test_ipv6_network(self): net = pyipcalc.IPNetwork('fff0::/64') self.assertEqual('fff0:0000:0000:0000:0000:0000:0000:0000/64', net.prefix()) self.assertEqual('fff0:0000:0000:0000:0000:0000:0000:0000', net.network()) self.assertEqual('fff0:0000:0000:0000:0000:0000:0000:0000', net.first()) self.assertEqual('fff0:0000:0000:0000:ffff:ffff:ffff:ffff', net.last()) self.assertEqual( 340199290171201906239764863564210241535, pyipcalc.ip_to_int('fff0:0000:0000:0000:ffff:ffff:ffff:ffff')) self.assertEqual( 'fff0:0000:0000:0000:ffff:ffff:ffff:ffff', pyipcalc.int_to_ip(340199290171201906239764863564210241535, 6)) self.assertEqual( pyipcalc.int_128_to_32(340199290171201906239764863564210241535), (4293918720, 0, 4294967295, 4294967295)) self.assertEqual( pyipcalc.int_32_to_128(4293918720, 0, 4294967295, 4294967295), 340199290171201906239764863564210241535)
import pyipcalc # Another module # https://pypi.python.org/pypi/pyipcalc/1.0.1 print ipcalc.IP("192.168.1.1") print ipcalc.IP("192.168.1.1/24").info() # PRIVATE print ipcalc.IP("124.129.14.90/30").mask # 30 print ipcalc.IP("124.129.14.90/255.255.255.252").mask # 30 print ipcalc.Network('123.235.52.106/30').netmask() # IP('255.255.255.252') print ipcalc.Network('123.235.52.106/30').network() print ipcalc.Network('192.168.1.0/24') print ipcalc.Network('192.168.1.0/255.255.255.0') print pyipcalc.IPNetwork("192.168.1.0/24").mask() # better than ipcalc print pyipcalc.IPNetwork("192.168.1.0/24").network() ip_str = '''192.168.4.1 192.168.4.3 192.168.4.4 192.168.6.54 192.168.6.55 192.168.6.100 192.168.6.101 ''' ip_list = ip_str.strip().split('\n') ip_network_list = list() for ip in ip_list: if len(ip.strip().split('/')) != 2: ip = ip + '/24'
import IPy import ipcalc # https://pypi.python.org/pypi/ipcalc/1.99.0 # Note: ipcalc is a program come from Linux package 'ipcalc' import pyipcalc # Another module # https://pypi.python.org/pypi/pyipcalc/1.0.1 print ipcalc.IP("192.168.1.1") print ipcalc.Network('192.168.1.0/24') print ipcalc.Network('192.168.1.0/255.255.255.0') print pyipcalc.IPNetwork("192.168.1.0/24").ip_network print pyipcalc.IPNetwork("192.168.1.0/24").subnet() print pyipcalc.IPNetwork("192.168.1.0/24").network() ip_str = '''192.168.4.1 192.168.4.3 192.168.4.4 192.168.6.54 192.168.6.55 192.168.6.100 192.168.6.101 ''' ip_list = ip_str.strip().split('\n') ip_network_list = list() for ip in ip_list: if len(ip.strip().split('/')) != 2: