From 80c697ef7a6716c677dff16eacd5ac7a4cb59ac1 Mon Sep 17 00:00:00 2001 From: Jeff Terrace Date: Tue, 21 Jan 2025 22:41:44 -0500 Subject: [PATCH] Use is_link_local for apipa range filter. --- wsdiscovery/util.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/wsdiscovery/util.py b/wsdiscovery/util.py index 3269568..f96a66b 100644 --- a/wsdiscovery/util.py +++ b/wsdiscovery/util.py @@ -16,8 +16,6 @@ logger = logging.getLogger("util") -_APIPA_RANGE = ipaddress.ip_network("169.254.0.0/16") - def createSkelSoapMessage(soapAction): doc = minidom.Document() @@ -261,14 +259,14 @@ def _getNetworkAddrs(protocol_version): for ip in iface.ips: if isinstance(ip.ip, str): ip_address = ipaddress.ip_address(ip.ip) - if not ip_address.is_loopback and ip_address not in _APIPA_RANGE: + if not ip_address.is_loopback and not ip_address.is_link_local: addrs.append(ip_address) elif protocol_version == socket.AF_INET6: for iface in ifaces: for ip in iface.ips: if isinstance(ip.ip, tuple): ip_address = ipaddress.ip_address(f"{ip.ip[0]}%{ip.ip[2]}") - if not ip_address.is_loopback and ip_address not in _APIPA_RANGE: + if not ip_address.is_loopback and not ip_address.is_link_local: addrs.append(ip_address) else: logger.warning(f"requested protocol version ({protocol_version}) is not"