예제 #1
0
 def testIpType(self):
     ipv4net = ipaddr.IPNetwork('1.2.3.4')
     ipv4addr = ipaddr.IPAddress('1.2.3.4')
     ipv6net = ipaddr.IPNetwork('::1.2.3.4')
     ipv6addr = ipaddr.IPAddress('::1.2.3.4')
     self.assertEqual(ipaddr.IPv4Network, type(ipv4net))
     self.assertEqual(ipaddr.IPv4Address, type(ipv4addr))
     self.assertEqual(ipaddr.IPv6Network, type(ipv6net))
     self.assertEqual(ipaddr.IPv6Address, type(ipv6addr))
예제 #2
0
 def testAddrExclude(self):
     addr1 = ipaddr.IPNetwork('10.1.1.0/24')
     addr2 = ipaddr.IPNetwork('10.1.1.0/26')
     addr3 = ipaddr.IPNetwork('10.2.1.0/24')
     addr4 = ipaddr.IPAddress('10.1.1.0')
     self.assertEqual(addr1.address_exclude(addr2),
                      [ipaddr.IPNetwork('10.1.1.64/26'),
                       ipaddr.IPNetwork('10.1.1.128/25')])
     self.assertRaises(ValueError, addr1.address_exclude, addr3)
     self.assertRaises(TypeError, addr1.address_exclude, addr4)
     self.assertEqual(addr1.address_exclude(addr1), [])
예제 #3
0
    def testCopyConstructor(self):
        addr1 = ipaddr.IPNetwork('10.1.1.0/24')
        addr2 = ipaddr.IPNetwork(addr1)
        addr3 = ipaddr.IPNetwork('2001:658:22a:cafe:200::1/64')
        addr4 = ipaddr.IPNetwork(addr3)
        addr5 = ipaddr.IPv4Address('1.1.1.1')
        addr6 = ipaddr.IPv6Address('2001:658:22a:cafe:200::1')

        self.assertEqual(addr1, addr2)
        self.assertEqual(addr3, addr4)
        self.assertEqual(addr5, ipaddr.IPv4Address(addr5))
        self.assertEqual(addr6, ipaddr.IPv6Address(addr6))
예제 #4
0
 def testHash(self):
     self.assertEqual(hash(ipaddr.IPNetwork('10.1.1.0/24')),
                       hash(ipaddr.IPNetwork('10.1.1.0/24')))
     self.assertEqual(hash(ipaddr.IPAddress('10.1.1.0')),
                       hash(ipaddr.IPAddress('10.1.1.0')))
     # i70
     self.assertEqual(hash(ipaddr.IPAddress('1.2.3.4')),
                       hash(ipaddr.IPAddress(
                 long(ipaddr.IPAddress('1.2.3.4')._ip))))
     ip1 = ipaddr.IPAddress('10.1.1.0')
     ip2 = ipaddr.IPAddress('1::')
     dummy = {}
     dummy[self.ipv4] = None
     dummy[self.ipv6] = None
     dummy[ip1] = None
     dummy[ip2] = None
     self.assertTrue(self.ipv4 in dummy)
     self.assertTrue(ip2 in dummy)
예제 #5
0
    def testEqual(self):
        self.assertTrue(self.ipv4 == ipaddr.IPv4Network('1.2.3.4/24'))
        self.assertFalse(self.ipv4 == ipaddr.IPv4Network('1.2.3.4/23'))
        self.assertFalse(self.ipv4 == ipaddr.IPv6Network('::1.2.3.4/24'))
        self.assertFalse(self.ipv4 == '')
        self.assertFalse(self.ipv4 == [])
        self.assertFalse(self.ipv4 == 2)
        self.assertTrue(ipaddr.IPNetwork('1.1.1.1/32') ==
                        ipaddr.IPAddress('1.1.1.1'))
        self.assertTrue(ipaddr.IPNetwork('1.1.1.1/24') ==
                        ipaddr.IPAddress('1.1.1.1'))
        self.assertFalse(ipaddr.IPNetwork('1.1.1.0/24') ==
                         ipaddr.IPAddress('1.1.1.1'))

        self.assertTrue(self.ipv6 ==
            ipaddr.IPv6Network('2001:658:22a:cafe:200::1/64'))
        self.assertTrue(ipaddr.IPNetwork('::1/128') ==
                        ipaddr.IPAddress('::1'))
        self.assertTrue(ipaddr.IPNetwork('::1/127') ==
                        ipaddr.IPAddress('::1'))
        self.assertFalse(ipaddr.IPNetwork('::0/127') ==
                         ipaddr.IPAddress('::1'))
        self.assertFalse(self.ipv6 ==
            ipaddr.IPv6Network('2001:658:22a:cafe:200::1/63'))
        self.assertFalse(self.ipv6 == ipaddr.IPv4Network('1.2.3.4/23'))
        self.assertFalse(self.ipv6 == '')
        self.assertFalse(self.ipv6 == [])
        self.assertFalse(self.ipv6 == 2)
예제 #6
0
    def testMixedTypeComparison(self):
        v4addr = ipaddr.IPAddress('1.1.1.1')
        v4net = ipaddr.IPNetwork('1.1.1.1/32')
        v6addr = ipaddr.IPAddress('::1')
        v6net = ipaddr.IPNetwork('::1/128')

        self.assertFalse(v4net.__contains__(v6net))
        self.assertFalse(v6net.__contains__(v4net))

        self.assertRaises(TypeError, lambda: v4addr < v4net)
        self.assertRaises(TypeError, lambda: v4addr > v4net)
        self.assertRaises(TypeError, lambda: v4net < v4addr)
        self.assertRaises(TypeError, lambda: v4net > v4addr)

        self.assertRaises(TypeError, lambda: v6addr < v6net)
        self.assertRaises(TypeError, lambda: v6addr > v6net)
        self.assertRaises(TypeError, lambda: v6net < v6addr)
        self.assertRaises(TypeError, lambda: v6net > v6addr)

        # with get_mixed_type_key, you can sort addresses and network.
        self.assertEqual([v4addr, v4net], sorted([v4net, v4addr],
                                                 key=ipaddr.get_mixed_type_key))
        self.assertEqual([v6addr, v6net], sorted([v6net, v6addr],
                                                 key=ipaddr.get_mixed_type_key))
예제 #7
0
    def testBadVersionComparison(self):
        # These should always raise TypeError
        v4addr = ipaddr.IPAddress('1.1.1.1')
        v4net = ipaddr.IPNetwork('1.1.1.1')
        v6addr = ipaddr.IPAddress('::1')
        v6net = ipaddr.IPAddress('::1')

        self.assertRaises(TypeError, v4addr.__lt__, v6addr)
        self.assertRaises(TypeError, v4addr.__gt__, v6addr)
        self.assertRaises(TypeError, v4net.__lt__, v6net)
        self.assertRaises(TypeError, v4net.__gt__, v6net)

        self.assertRaises(TypeError, v6addr.__lt__, v4addr)
        self.assertRaises(TypeError, v6addr.__gt__, v4addr)
        self.assertRaises(TypeError, v6net.__lt__, v4net)
        self.assertRaises(TypeError, v6net.__gt__, v4net)
예제 #8
0
    def testIpFromInt(self):
        self.assertEqual(self.ipv4.ip, ipaddr.IPv4Network(16909060).ip)
        self.assertRaises(ipaddr.AddressValueError,
                          ipaddr.IPv4Network, 2**32)
        self.assertRaises(ipaddr.AddressValueError,
                          ipaddr.IPv4Network, -1)

        ipv4 = ipaddr.IPNetwork('1.2.3.4')
        ipv6 = ipaddr.IPNetwork('2001:658:22a:cafe:200:0:0:1')
        self.assertEqual(ipv4, ipaddr.IPNetwork(int(ipv4)))
        self.assertEqual(ipv6, ipaddr.IPNetwork(int(ipv6)))

        v6_int = 42540616829182469433547762482097946625
        self.assertEqual(self.ipv6.ip, ipaddr.IPv6Network(v6_int).ip)
        self.assertRaises(ipaddr.AddressValueError,
                          ipaddr.IPv6Network, 2**128)
        self.assertRaises(ipaddr.AddressValueError,
                          ipaddr.IPv6Network, -1)

        self.assertEqual(ipaddr.IPNetwork(self.ipv4.ip).version, 4)
        self.assertEqual(ipaddr.IPNetwork(self.ipv6.ip).version, 6)
예제 #9
0
    def testReservedIpv6(self):

        self.assertEqual(True, ipaddr.IPNetwork('ffff::').is_multicast)
        self.assertEqual(True, ipaddr.IPNetwork(2**128-1).is_multicast)
        self.assertEqual(True, ipaddr.IPNetwork('ff00::').is_multicast)
        self.assertEqual(False, ipaddr.IPNetwork('fdff::').is_multicast)

        self.assertEqual(True, ipaddr.IPNetwork('fecf::').is_site_local)
        self.assertEqual(True, ipaddr.IPNetwork(
                'feff:ffff:ffff:ffff::').is_site_local)
        self.assertEqual(False, ipaddr.IPNetwork('fbf:ffff::').is_site_local)
        self.assertEqual(False, ipaddr.IPNetwork('ff00::').is_site_local)

        self.assertEqual(True, ipaddr.IPNetwork('fc00::').is_private)
        self.assertEqual(True, ipaddr.IPNetwork(
                'fc00:ffff:ffff:ffff::').is_private)
        self.assertEqual(False, ipaddr.IPNetwork('fbff:ffff::').is_private)
        self.assertEqual(False, ipaddr.IPNetwork('fe00::').is_private)

        self.assertEqual(True, ipaddr.IPNetwork('fea0::').is_link_local)
        self.assertEqual(True, ipaddr.IPNetwork('febf:ffff::').is_link_local)
        self.assertEqual(False, ipaddr.IPNetwork('fe7f:ffff::').is_link_local)
        self.assertEqual(False, ipaddr.IPNetwork('fec0::').is_link_local)

        self.assertEqual(True, ipaddr.IPNetwork('0:0::0:01').is_loopback)
        self.assertEqual(False, ipaddr.IPNetwork('::1/127').is_loopback)
        self.assertEqual(False, ipaddr.IPNetwork('::').is_loopback)
        self.assertEqual(False, ipaddr.IPNetwork('::2').is_loopback)

        self.assertEqual(True, ipaddr.IPNetwork('0::0').is_unspecified)
        self.assertEqual(False, ipaddr.IPNetwork('::1').is_unspecified)
        self.assertEqual(False, ipaddr.IPNetwork('::/127').is_unspecified)

        # test addresses
        self.assertEqual(True, ipaddr.IPAddress('ffff::').is_multicast)
        self.assertEqual(True, ipaddr.IPAddress(2**128-1).is_multicast)
        self.assertEqual(True, ipaddr.IPAddress('ff00::').is_multicast)
        self.assertEqual(False, ipaddr.IPAddress('fdff::').is_multicast)

        self.assertEqual(True, ipaddr.IPAddress('fecf::').is_site_local)
        self.assertEqual(True, ipaddr.IPAddress(
                'feff:ffff:ffff:ffff::').is_site_local)
        self.assertEqual(False, ipaddr.IPAddress('fbf:ffff::').is_site_local)
        self.assertEqual(False, ipaddr.IPAddress('ff00::').is_site_local)

        self.assertEqual(True, ipaddr.IPAddress('fc00::').is_private)
        self.assertEqual(True, ipaddr.IPAddress(
                'fc00:ffff:ffff:ffff::').is_private)
        self.assertEqual(False, ipaddr.IPAddress('fbff:ffff::').is_private)
        self.assertEqual(False, ipaddr.IPAddress('fe00::').is_private)

        self.assertEqual(True, ipaddr.IPAddress('fea0::').is_link_local)
        self.assertEqual(True, ipaddr.IPAddress('febf:ffff::').is_link_local)
        self.assertEqual(False, ipaddr.IPAddress('fe7f:ffff::').is_link_local)
        self.assertEqual(False, ipaddr.IPAddress('fec0::').is_link_local)

        self.assertEqual(True, ipaddr.IPAddress('0:0::0:01').is_loopback)
        self.assertEqual(True, ipaddr.IPAddress('::1').is_loopback)
        self.assertEqual(False, ipaddr.IPAddress('::2').is_loopback)

        self.assertEqual(True, ipaddr.IPAddress('0::0').is_unspecified)
        self.assertEqual(False, ipaddr.IPAddress('::1').is_unspecified)

        # some generic IETF reserved addresses
        self.assertEqual(True, ipaddr.IPAddress('100::').is_reserved)
        self.assertEqual(True, ipaddr.IPNetwork('4000::1/128').is_reserved)
예제 #10
0
    def testReservedIpv4(self):
        # test networks
        self.assertEqual(True, ipaddr.IPNetwork('224.1.1.1/31').is_multicast)
        self.assertEqual(False, ipaddr.IPNetwork('240.0.0.0').is_multicast)

        self.assertEqual(True, ipaddr.IPNetwork('192.168.1.1/17').is_private)
        self.assertEqual(False, ipaddr.IPNetwork('192.169.0.0').is_private)
        self.assertEqual(True, ipaddr.IPNetwork('10.255.255.255').is_private)
        self.assertEqual(False, ipaddr.IPNetwork('11.0.0.0').is_private)
        self.assertEqual(True, ipaddr.IPNetwork('172.31.255.255').is_private)
        self.assertEqual(False, ipaddr.IPNetwork('172.32.0.0').is_private)

        self.assertEqual(True,
                          ipaddr.IPNetwork('169.254.100.200/24').is_link_local)
        self.assertEqual(False,
                          ipaddr.IPNetwork('169.255.100.200/24').is_link_local)

        self.assertEqual(True,
                          ipaddr.IPNetwork('127.100.200.254/32').is_loopback)
        self.assertEqual(True, ipaddr.IPNetwork('127.42.0.0/16').is_loopback)
        self.assertEqual(False, ipaddr.IPNetwork('128.0.0.0').is_loopback)

        # test addresses
        self.assertEqual(True, ipaddr.IPAddress('224.1.1.1').is_multicast)
        self.assertEqual(False, ipaddr.IPAddress('240.0.0.0').is_multicast)

        self.assertEqual(True, ipaddr.IPAddress('192.168.1.1').is_private)
        self.assertEqual(False, ipaddr.IPAddress('192.169.0.0').is_private)
        self.assertEqual(True, ipaddr.IPAddress('10.255.255.255').is_private)
        self.assertEqual(False, ipaddr.IPAddress('11.0.0.0').is_private)
        self.assertEqual(True, ipaddr.IPAddress('172.31.255.255').is_private)
        self.assertEqual(False, ipaddr.IPAddress('172.32.0.0').is_private)

        self.assertEqual(True,
                          ipaddr.IPAddress('169.254.100.200').is_link_local)
        self.assertEqual(False,
                          ipaddr.IPAddress('169.255.100.200').is_link_local)

        self.assertEqual(True,
                          ipaddr.IPAddress('127.100.200.254').is_loopback)
        self.assertEqual(True, ipaddr.IPAddress('127.42.0.0').is_loopback)
        self.assertEqual(False, ipaddr.IPAddress('128.0.0.0').is_loopback)
        self.assertEqual(True, ipaddr.IPNetwork('0.0.0.0').is_unspecified)
예제 #11
0
    def testSummarizing(self):
        #ip = ipaddr.IPAddress
        #ipnet = ipaddr.IPNetwork
        summarize = ipaddr.summarize_address_range
        ip1 = ipaddr.IPAddress('1.1.1.0')
        ip2 = ipaddr.IPAddress('1.1.1.255')
        # test a /24 is sumamrized properly
        self.assertEqual(summarize(ip1, ip2)[0], ipaddr.IPNetwork('1.1.1.0/24'))
        # test an  IPv4 range that isn't on a network byte boundary
        ip2 = ipaddr.IPAddress('1.1.1.8')
        self.assertEqual(summarize(ip1, ip2), [ipaddr.IPNetwork('1.1.1.0/29'),
                                               ipaddr.IPNetwork('1.1.1.8')])

        ip1 = ipaddr.IPAddress('1::')
        ip2 = ipaddr.IPAddress('1:ffff:ffff:ffff:ffff:ffff:ffff:ffff')
        # test a IPv6 is sumamrized properly
        self.assertEqual(summarize(ip1, ip2)[0], ipaddr.IPNetwork('1::/16'))
        # test an IPv6 range that isn't on a network byte boundary
        ip2 = ipaddr.IPAddress('2::')
        self.assertEqual(summarize(ip1, ip2), [ipaddr.IPNetwork('1::/16'),
                                               ipaddr.IPNetwork('2::/128')])

        # test exception raised when first is greater than last
        self.assertRaises(ValueError, summarize, ipaddr.IPAddress('1.1.1.0'),
            ipaddr.IPAddress('1.1.0.0'))
        # test exception raised when first and last aren't IP addresses
        self.assertRaises(TypeError, summarize,
                          ipaddr.IPNetwork('1.1.1.0'),
                          ipaddr.IPNetwork('1.1.0.0'))
        self.assertRaises(TypeError, summarize,
            ipaddr.IPNetwork('1.1.1.0'), ipaddr.IPNetwork('1.1.0.0'))
        # test exception raised when first and last are not same version
        self.assertRaises(TypeError, summarize, ipaddr.IPAddress('::'),
            ipaddr.IPNetwork('1.1.0.0'))
예제 #12
0
    def testCollapsing(self):
        # test only IP addresses including some duplicates
        ip1 = ipaddr.IPv4Address('1.1.1.0')
        ip2 = ipaddr.IPv4Address('1.1.1.1')
        ip3 = ipaddr.IPv4Address('1.1.1.2')
        ip4 = ipaddr.IPv4Address('1.1.1.3')
        ip5 = ipaddr.IPv4Address('1.1.1.4')
        ip6 = ipaddr.IPv4Address('1.1.1.0')
        # check that addreses are subsumed properly.
        collapsed = ipaddr.collapse_address_list([ip1, ip2, ip3, ip4, ip5, ip6])
        self.assertEqual(collapsed, [ipaddr.IPv4Network('1.1.1.0/30'),
                                     ipaddr.IPv4Network('1.1.1.4/32')])

        # test a mix of IP addresses and networks including some duplicates
        ip1 = ipaddr.IPv4Address('1.1.1.0')
        ip2 = ipaddr.IPv4Address('1.1.1.1')
        ip3 = ipaddr.IPv4Address('1.1.1.2')
        ip4 = ipaddr.IPv4Address('1.1.1.3')
        ip5 = ipaddr.IPv4Network('1.1.1.4/30')
        ip6 = ipaddr.IPv4Network('1.1.1.4/30')
        # check that addreses are subsumed properly.
        collapsed = ipaddr.collapse_address_list([ip5, ip1, ip2, ip3, ip4, ip6])
        self.assertEqual(collapsed, [ipaddr.IPv4Network('1.1.1.0/29')])

        # test only IP networks
        ip1 = ipaddr.IPv4Network('1.1.0.0/24')
        ip2 = ipaddr.IPv4Network('1.1.1.0/24')
        ip3 = ipaddr.IPv4Network('1.1.2.0/24')
        ip4 = ipaddr.IPv4Network('1.1.3.0/24')
        ip5 = ipaddr.IPv4Network('1.1.4.0/24')
        # stored in no particular order b/c we want CollapseAddr to call [].sort
        ip6 = ipaddr.IPv4Network('1.1.0.0/22')
        # check that addreses are subsumed properly.
        collapsed = ipaddr.collapse_address_list([ip1, ip2, ip3, ip4, ip5, ip6])
        self.assertEqual(collapsed, [ipaddr.IPv4Network('1.1.0.0/22'),
                                     ipaddr.IPv4Network('1.1.4.0/24')])

        # test that two addresses are supernet'ed properly
        collapsed = ipaddr.collapse_address_list([ip1, ip2])
        self.assertEqual(collapsed, [ipaddr.IPv4Network('1.1.0.0/23')])

        # test same IP networks
        ip_same1 = ip_same2 = ipaddr.IPv4Network('1.1.1.1/32')
        self.assertEqual(ipaddr.collapse_address_list([ip_same1, ip_same2]),
                         [ip_same1])

        # test same IP addresses
        ip_same1 = ip_same2 = ipaddr.IPv4Address('1.1.1.1')
        self.assertEqual(ipaddr.collapse_address_list([ip_same1, ip_same2]),
                         [ipaddr.IPNetwork('1.1.1.1/32')])
        ip1 = ipaddr.IPv6Network('::2001:1/100')
        ip2 = ipaddr.IPv6Network('::2002:1/120')
        ip3 = ipaddr.IPv6Network('::2001:1/96')
        # test that ipv6 addresses are subsumed properly.
        collapsed = ipaddr.collapse_address_list([ip1, ip2, ip3])
        self.assertEqual(collapsed, [ip3])

        # the toejam test
        ip1 = ipaddr.IPAddress('1.1.1.1')
        ip2 = ipaddr.IPAddress('::1')
        self.assertRaises(TypeError, ipaddr.collapse_address_list,
                          [ip1, ip2])
예제 #13
0
 def testIterHosts(self):
     self.assertEqual([ipaddr.IPv4Address('2.0.0.0'),
                       ipaddr.IPv4Address('2.0.0.1')],
                      list(ipaddr.IPNetwork('2.0.0.0/31').iterhosts()))
예제 #14
0
    def testBackwardsCompability(self):
        self.assertEqual(ipaddr.CollapseAddrList(
            [ipaddr.IPNetwork('1.1.0.0/24'), ipaddr.IPNetwork('1.1.1.0/24')]),
                         [ipaddr.IPNetwork('1.1.0.0/23')])

        self.assertEqual(ipaddr.IPNetwork('::42:0/112').AddressExclude(
            ipaddr.IPNetwork('::42:8000/113')),
                         [ipaddr.IPNetwork('::42:0/113')])

        self.assertTrue(ipaddr.IPNetwork('1::/8').CompareNetworks(
            ipaddr.IPNetwork('2::/9')) < 0)

        self.assertEqual(ipaddr.IPNetwork('1::/16').Contains(
            ipaddr.IPNetwork('2::/16')), False)

        self.assertEqual(ipaddr.IPNetwork('0.0.0.0/0').Subnet(),
                         [ipaddr.IPNetwork('0.0.0.0/1'),
                          ipaddr.IPNetwork('128.0.0.0/1')])
        self.assertEqual(ipaddr.IPNetwork('::/127').Subnet(),
                         [ipaddr.IPNetwork('::/128'),
                          ipaddr.IPNetwork('::1/128')])

        self.assertEqual(ipaddr.IPNetwork('1.0.0.0/32').Supernet(),
                         ipaddr.IPNetwork('1.0.0.0/31'))
        self.assertEqual(ipaddr.IPNetwork('::/121').Supernet(),
                         ipaddr.IPNetwork('::/120'))

        self.assertEqual(ipaddr.IPNetwork('10.0.0.2').IsRFC1918(), True)
        self.assertEqual(ipaddr.IPNetwork('10.0.0.0').IsMulticast(), False)
        self.assertEqual(ipaddr.IPNetwork('127.255.255.255').IsLoopback(), True)
        self.assertEqual(ipaddr.IPNetwork('169.255.255.255').IsLinkLocal(),
                         False)
예제 #15
0
    def testNetworkComparison(self):
        # ip1 and ip2 have the same network address
        ip1 = ipaddr.IPv4Network('1.1.1.0/24')
        ip2 = ipaddr.IPv4Network('1.1.1.1/24')
        ip3 = ipaddr.IPv4Network('1.1.2.0/24')

        self.assertTrue(ip1 < ip3)
        self.assertTrue(ip3 > ip2)

        self.assertEqual(ip1.compare_networks(ip2), 0)
        self.assertTrue(ip1._get_networks_key() == ip2._get_networks_key())
        self.assertEqual(ip1.compare_networks(ip3), -1)
        self.assertTrue(ip1._get_networks_key() < ip3._get_networks_key())

        ip1 = ipaddr.IPv6Network('2001::2000/96')
        ip2 = ipaddr.IPv6Network('2001::2001/96')
        ip3 = ipaddr.IPv6Network('2001:ffff::2000/96')

        self.assertTrue(ip1 < ip3)
        self.assertTrue(ip3 > ip2)
        self.assertEqual(ip1.compare_networks(ip2), 0)
        self.assertTrue(ip1._get_networks_key() == ip2._get_networks_key())
        self.assertEqual(ip1.compare_networks(ip3), -1)
        self.assertTrue(ip1._get_networks_key() < ip3._get_networks_key())

        # Test comparing different protocols.
        # Should always raise a TypeError.
        ipv6 = ipaddr.IPv6Network('::/0')
        ipv4 = ipaddr.IPv4Network('0.0.0.0/0')
        self.assertRaises(TypeError, ipv4.__lt__, ipv6)
        self.assertRaises(TypeError, ipv4.__gt__, ipv6)
        self.assertRaises(TypeError, ipv6.__lt__, ipv4)
        self.assertRaises(TypeError, ipv6.__gt__, ipv4)

        # Regression test for issue 19.
        ip1 = ipaddr.IPNetwork('10.1.2.128/25')
        self.assertFalse(ip1 < ip1)
        self.assertFalse(ip1 > ip1)
        ip2 = ipaddr.IPNetwork('10.1.3.0/24')
        self.assertTrue(ip1 < ip2)
        self.assertFalse(ip2 < ip1)
        self.assertFalse(ip1 > ip2)
        self.assertTrue(ip2 > ip1)
        ip3 = ipaddr.IPNetwork('10.1.3.0/25')
        self.assertTrue(ip2 < ip3)
        self.assertFalse(ip3 < ip2)
        self.assertFalse(ip2 > ip3)
        self.assertTrue(ip3 > ip2)

        # Regression test for issue 28.
        ip1 = ipaddr.IPNetwork('10.10.10.0/31')
        ip2 = ipaddr.IPNetwork('10.10.10.0')
        ip3 = ipaddr.IPNetwork('10.10.10.2/31')
        ip4 = ipaddr.IPNetwork('10.10.10.2')
        sorted = [ip1, ip2, ip3, ip4]
        unsorted = [ip2, ip4, ip1, ip3]
        unsorted.sort()
        self.assertEqual(sorted, unsorted)
        unsorted = [ip4, ip1, ip3, ip2]
        unsorted.sort()
        self.assertEqual(sorted, unsorted)
        self.assertRaises(TypeError, ip1.__lt__, ipaddr.IPAddress('10.10.10.0'))
        self.assertRaises(TypeError, ip2.__lt__, ipaddr.IPAddress('10.10.10.0'))

        # <=, >=
        self.assertTrue(ipaddr.IPNetwork('1.1.1.1') <=
                        ipaddr.IPNetwork('1.1.1.1'))
        self.assertTrue(ipaddr.IPNetwork('1.1.1.1') <=
                        ipaddr.IPNetwork('1.1.1.2'))
        self.assertFalse(ipaddr.IPNetwork('1.1.1.2') <=
                        ipaddr.IPNetwork('1.1.1.1'))
        self.assertTrue(ipaddr.IPNetwork('::1') <= ipaddr.IPNetwork('::1'))
        self.assertTrue(ipaddr.IPNetwork('::1') <= ipaddr.IPNetwork('::2'))
        self.assertFalse(ipaddr.IPNetwork('::2') <= ipaddr.IPNetwork('::1'))
예제 #16
0
def addr_in(addr, hosts):
    for host in hosts:
        if ipaddr.IPAddress(addr) in ipaddr.IPNetwork(host):
            return True
    return False
예제 #17
0
 def testForceVersion(self):
     self.assertEqual(ipaddr.IPNetwork(1).version, 4)
     self.assertEqual(ipaddr.IPNetwork(1, version=6).version, 6)