diff options
author | niels <nkeulen@gmail.com> | 2021-01-27 20:44:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-27 20:44:12 +0100 |
commit | 606a44b62ea7032f63e359aaaaabc0057e168890 (patch) | |
tree | 361093c02616938aa43edfcf1280069fdd77ac0b | |
parent | 84112269445997ad6bfcf25247e788a31365460e (diff) | |
download | netaddr-606a44b62ea7032f63e359aaaaabc0057e168890.tar.gz |
Fix for is_loopback behaviour (issue: #222) (#223)
-rw-r--r-- | netaddr/ip/__init__.py | 4 | ||||
-rw-r--r-- | netaddr/tests/ip/test_ip_network_categories.py | 26 |
2 files changed, 28 insertions, 2 deletions
diff --git a/netaddr/ip/__init__.py b/netaddr/ip/__init__.py index d1232eb..9e13b29 100644 --- a/netaddr/ip/__init__.py +++ b/netaddr/ip/__init__.py @@ -151,7 +151,7 @@ class BaseIP(object): if self._module.version == 4: return self in IPV4_LOOPBACK elif self._module.version == 6: - return self == IPV6_LOOPBACK + return self in IPV6_LOOPBACK def is_private(self): """ @@ -1949,7 +1949,7 @@ IPV4_RESERVED = ( #----------------------------------------------------------------------------- # Cached IPv6 address range lookups. #----------------------------------------------------------------------------- -IPV6_LOOPBACK = IPAddress('::1') +IPV6_LOOPBACK = IPNetwork('::1/128') IPV6_PRIVATE = ( IPNetwork('fc00::/7'), # Unique Local Addresses (ULA) diff --git a/netaddr/tests/ip/test_ip_network_categories.py b/netaddr/tests/ip/test_ip_network_categories.py new file mode 100644 index 0000000..9f9961e --- /dev/null +++ b/netaddr/tests/ip/test_ip_network_categories.py @@ -0,0 +1,26 @@ +from netaddr import IPNetwork
+
+
+def test_is_unicast():
+ assert IPNetwork('192.0.2.0/24').is_unicast()
+ assert IPNetwork('fe80::1/48').is_unicast()
+
+
+def test_is_multicast():
+ assert IPNetwork('239.192.0.1/24').is_multicast()
+ assert IPNetwork('ff00::/8').is_multicast()
+
+
+def test_is_private():
+ assert IPNetwork('10.0.0.0/24').is_private()
+ assert IPNetwork('fc00::/7').is_private()
+
+
+def test_is_reserved():
+ assert IPNetwork('240.0.0.0/24').is_reserved()
+ assert IPNetwork('0::/48').is_reserved()
+
+
+def test_is_loopback():
+ assert IPNetwork('127.0.0.0/8').is_loopback()
+ assert IPNetwork('::1/128').is_loopback()
|