From e19efbca721f88f1d88bb992e3537302e0453937 Mon Sep 17 00:00:00 2001 From: Sebastian Stellingwerff Date: Mon, 12 Apr 2021 21:20:26 +0200 Subject: [PATCH] Update ipaddress.py Enable fitting reverse_pointer method for ipv4 and ipv6 networks --- Lib/ipaddress.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Lib/ipaddress.py b/Lib/ipaddress.py index 160b16dbc162fcc..09e7b9866f205d0 100644 --- a/Lib/ipaddress.py +++ b/Lib/ipaddress.py @@ -1525,6 +1525,14 @@ def is_global(self): self.broadcast_address in IPv4Network('100.64.0.0/10')) and not self.is_private) + def _reverse_pointer(self): + """Return the reverse DNS pointer name for the IPv4 network. + + This implements the method described in RFC1035 3.5. + + """ + return self.network_address.reverse_pointer.split(".", int((self.max_prefixlen - self.prefixlen) / 8))[-1] + class _IPv4Constants: _linklocal_network = IPv4Network('169.254.0.0/16') @@ -2243,6 +2251,11 @@ def is_site_local(self): return (self.network_address.is_site_local and self.broadcast_address.is_site_local) + def _reverse_pointer(self): + """Return the reverse DNS pointer name for the IPv6 address. + + """ + return self.network_address.reverse_pointer.split(".", int((self.max_prefixlen - self.prefixlen) / 4))[-1] class _IPv6Constants: