"""Determine if the ip_addr belongs to any of the subnets list."""
subnet_list = [x.strip() for x in subnets.split(',')]
for subnet in subnet_list:
- if ipaddress.ip_address(ip_addr) in ipaddress.ip_network(subnet):
+ ip_address = unwrap_ipv6(ip_addr) if is_ipv6(ip_addr) else ip_addr
+ if ipaddress.ip_address(ip_address) in ipaddress.ip_network(subnet):
return True
return False
rc = cd.ip_in_subnets('fe80::5054:ff:fef4:873a', 'fe80::/64')
assert rc is True
+ # valid wrapped ip and valid IPV6 network
+ rc = cd.ip_in_subnets('[fe80::5054:ff:fef4:873a]', 'fe80::/64')
+ assert rc is True
+
# valid ip and that doesn't belong to IPV6 network
rc = cd.ip_in_subnets('fe80::5054:ff:fef4:873a', '2001:db8:85a3::/64')
assert rc is False