diff --git a/Lib/ipaddress.py b/Lib/ipaddress.py index 160b16dbc162fc..09e7b9866f205d 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: