def test_is_valid_ip_address(self): valid_ipv4_addresses = [ "192.168.1.100", "10.0.0.1", "213.151.0.8", "77.77.77.77", ] invalid_ipv4_addresses = [ "10.1", "256.256.256.256", "0.567.567.567", "192.168.0.257", ] valid_ipv6_addresses = [ "fe80::200:5aee:feaa:20a2", "2607:f0d0:1002:51::4", "2607:f0d0:1002:0051:0000:0000:0000:0004", "::1", ] invalid_ipv6_addresses = [ "2607:f0d", "2607:f0d0:0004", ] for address in valid_ipv4_addresses: status = is_valid_ip_address(address=address, family=socket.AF_INET) self.assertTrue(status) for address in valid_ipv6_addresses: status = is_valid_ip_address(address=address, family=socket.AF_INET6) self.assertTrue(status) for address in chain(invalid_ipv4_addresses, invalid_ipv6_addresses): status = is_valid_ip_address(address=address, family=socket.AF_INET) self.assertFalse(status) for address in chain(invalid_ipv4_addresses, invalid_ipv6_addresses): status = is_valid_ip_address(address=address, family=socket.AF_INET6) self.assertFalse(status)
def is_supported(address): """ Return True for supported address. """ if force_ipv4 and not is_valid_ip_address(address=address, family=socket.AF_INET): return False return True
def test_is_valid_ip_address(self): valid_ipv4_addresses = [ '192.168.1.100', '10.0.0.1', '213.151.0.8', '77.77.77.77' ] invalid_ipv4_addresses = [ '10.1', '256.256.256.256', '0.567.567.567', '192.168.0.257' ] valid_ipv6_addresses = [ 'fe80::200:5aee:feaa:20a2', '2607:f0d0:1002:51::4', '2607:f0d0:1002:0051:0000:0000:0000:0004', '::1' ] invalid_ipv6_addresses = [ '2607:f0d', '2607:f0d0:0004', ] for address in valid_ipv4_addresses: status = is_valid_ip_address(address=address, family=socket.AF_INET) self.assertTrue(status) for address in valid_ipv6_addresses: status = is_valid_ip_address(address=address, family=socket.AF_INET6) self.assertTrue(status) for address in chain(invalid_ipv4_addresses, invalid_ipv6_addresses): status = is_valid_ip_address(address=address, family=socket.AF_INET) self.assertFalse(status) for address in chain(invalid_ipv4_addresses, invalid_ipv6_addresses): status = is_valid_ip_address(address=address, family=socket.AF_INET6) self.assertFalse(status)
def _filter_ipv4(addresses): """ Select IPv4 addresses from the list of IP addresses. :param list addresses: The list of the addresses to filter. :return: The list of addresses that are IPv4 addresses. :rtype: list """ return [ address for address in addresses if is_valid_ip_address(address=address, family=socket.AF_INET) ]