Coverage for src/dqx_network_checks/validators.py: 100%
44 statements
« prev ^ index » next coverage.py v7.9.1, created at 2025-07-01 10:49 +0200
« prev ^ index » next coverage.py v7.9.1, created at 2025-07-01 10:49 +0200
1import ipaddress
4def validate_ipv4_address(address: str) -> bool:
5 try:
6 ipaddress.IPv4Address(address)
7 return True
8 except ipaddress.AddressValueError:
9 return False
12def validate_multicast_ipv4_address(address: str) -> bool:
13 try:
14 parsed_ip = ipaddress.IPv4Address(address)
15 return parsed_ip.is_multicast
16 except ValueError:
17 return False
20def validate_private_ipv4_address(address: str) -> bool:
21 try:
22 parsed_ip = ipaddress.IPv4Address(address)
23 return parsed_ip.is_private
24 except ValueError:
25 return False
28def validate_global_ipv4_address(address: str) -> bool:
29 try:
30 parsed_ip = ipaddress.IPv4Address(address)
31 return parsed_ip.is_global
32 except ValueError:
33 return False
36def validate_loopback_ipv4_address(address: str) -> bool:
37 try:
38 parsed_ip = ipaddress.IPv4Address(address)
39 return parsed_ip.is_loopback
40 except ValueError:
41 return False
44def validate_ipv4_network(network: str) -> bool:
45 try:
46 ipaddress.IPv4Network(network)
47 return True
48 except (ipaddress.NetmaskValueError, ipaddress.AddressValueError):
49 return False
52def validate_network_contains_ipv4_address(network: str, address: str) -> bool:
53 try:
54 parsed_network = ipaddress.IPv4Network(network)
55 parsed_ip = ipaddress.IPv4Address(address)
56 return parsed_ip in parsed_network
57 except ValueError:
58 return False