def test_ipv4_public(self): from faker.providers.internet import Provider provider = Provider(self.generator) for _ in range(999): address = provider.ipv4_public() address = text.force_text(address) self.assertTrue(len(address) >= 7) self.assertTrue(len(address) <= 15) self.assertFalse(ip_address(address).is_private, address) self.assertTrue( re.compile(r'^(\d{1,3}\.){3}\d{1,3}$').search(address)) for _ in range(999): address = provider.ipv4_public(network=True) address = text.force_text(address) self.assertTrue(len(address) >= 9) self.assertTrue(len(address) <= 18) # Hack around ipaddress module # As 192.0.0.0 is net addr of many 192.0.0.0/* nets # ipaddress considers them as private if ip_network(address).network_address != ip_address('192.0.0.0'): self.assertFalse(ip_network(address)[0].is_private, address) self.assertTrue( re.compile(r'^(\d{1,3}\.){3}\d{1,3}/\d{1,2}$').search(address))
def test_ipv6(self): for _ in range(100): ip = self.factory.ipv6(private=True) ip = text.force_text(ip) self.assertTrue(ip_address(ip).is_private) ip = self.factory.ipv6(private=False) ip = text.force_text(ip) self.assertFalse(ip_address(ip).is_private)
def ipv6(self, network=False, private=False): """Produce a random IPv6 address or network with a valid CIDR.""" if private is True: networks = dict() for i in range(len(_private_ipv6_networks)): networks[i] = _private_ipv6_networks[i].num_addresses k = self.generator.random_element(networks) _net = _private_ipv6_networks[k] address = str( ip_address( self.generator.random.randint( int(_net.network_address), int(_net.network_address) + _net.num_addresses - 1))) else: # It's unfair to trying to not find private ip but it's much faster address = str( ip_address( self.generator.random.randint(2**IPV4LENGTH, (2**IPV6LENGTH) - 1))) while ip_address(force_text(address)).is_private is True: address = str( ip_address( self.generator.random.randint(2**IPV4LENGTH, (2**IPV6LENGTH) - 1))) if network is True: address += '/' + str(self.generator.random.randint(0, IPV6LENGTH)) address = str(ip_network(address, strict=False)) return address
def test_ipv4_public_class_c(self): from faker.providers.internet import Provider provider = Provider(self.generator) for _ in range(999): address = provider.ipv4_public(address_class='c') address = text.force_text(address) self.assertTrue(len(address) >= 7) self.assertTrue(len(address) <= 15) self.assertFalse(ip_address(address).is_private, address)
def test_ipv4_private_class_c(self): from faker.providers.internet import Provider provider = Provider(self.generator) for _ in range(999): address = provider.ipv4_private(address_class='c') address = text.force_text(address) self.assertTrue(len(address) >= 7) self.assertTrue(len(address) <= 15) self.assertTrue(ip_address(address).is_private) self.assertTrue( re.compile(r'^192\.168\.\d{1,3}\.\d{1,3}$').search(address))
def test_ipv4_private(self): from faker.providers.internet import Provider provider = Provider(self.generator) for _ in range(999): address = provider.ipv4_private() address = text.force_text(address) self.assertTrue(len(address) >= 7) self.assertTrue(len(address) <= 15) self.assertTrue(ip_address(address).is_private) self.assertTrue( re.compile(r'^(\d{1,3}\.){3}\d{1,3}$').search(address)) for _ in range(999): address = provider.ipv4_private(network=True) address = text.force_text(address) self.assertTrue(len(address) >= 9) self.assertTrue(len(address) <= 18) self.assertTrue(ip_network(address)[0].is_private) self.assertTrue( re.compile(r'^(\d{1,3}\.){3}\d{1,3}/\d{1,2}$').search(address))