python ipaddress()reverse_pointer 相当于 3.4

python ipaddress()reverse_pointer equivalent for 3.4

我正在尝试从有效的 IPv6 地址获取反向 IPv6 arpa,但我想使用的功能仅在 Python3.5 中可用,而 FreeBSD 端口仍在 Python3 上。 4

In [1]: import ipaddress
In [3]: ipaddress.ip_address("2001:db8::1").reverse_pointer

AttributeError: 'IPv6Address' object has no attribute 'reverse_pointer'

获得反向 IPv6 arpa 的 Python3.4 是什么?

ipaddress 3.5 manual page

您可以直接下载Python3.5的源码,然后复制粘贴您需要的功能,

def _reverse_pointer(self):
    """Return the reverse DNS pointer name for the IPv6 address.

    This implements the method described in RFC3596 2.5.

    """
    reverse_chars = self.exploded[::-1].replace(':', '')
    return '.'.join(reverse_chars) + '.ip6.arpa'

可以如下使用,

In [1]: import ipaddress
In [2]: ip_addr = ipaddress.ip_address("2001:db8::1")
In [3]: _reverse_pointer(ip_addr)
Out[3]: '1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'