diff options
| author | Bob Halley <halley@dnspython.org> | 2014-05-31 11:17:38 -0700 |
|---|---|---|
| committer | Bob Halley <halley@dnspython.org> | 2014-05-31 11:17:38 -0700 |
| commit | 7a277cecc6227edf746a40dbad250503ef3f7d20 (patch) | |
| tree | cb4b9282a7e2114eb653bdc662c760f46241b65f /dns/reversename.py | |
| parent | c8e17fc02a2d3ebbee3e7c34cd7828858e13fe57 (diff) | |
| download | dnspython-7a277cecc6227edf746a40dbad250503ef3f7d20.tar.gz | |
Add dns.ipv6.is_mapped(); Reverse IPv6 mapped IPv4 into v4 space
Diffstat (limited to 'dns/reversename.py')
| -rw-r--r-- | dns/reversename.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/dns/reversename.py b/dns/reversename.py index 4925cfd..b80c60a 100644 --- a/dns/reversename.py +++ b/dns/reversename.py @@ -37,8 +37,13 @@ def from_address(text): @rtype: dns.name.Name object """ try: - parts = list(dns.ipv6.inet_aton(text).encode('hex_codec')) - origin = ipv6_reverse_domain + v6 = dns.ipv6.inet_aton(text) + if dns.ipv6.is_mapped(v6): + parts = ['%d' % ord(byte) for byte in v6[12:]] + origin = ipv4_reverse_domain + else: + parts = list(v6.encode('hex_codec')) + origin = ipv6_reverse_domain except: parts = ['%d' % ord(byte) for byte in dns.ipv4.inet_aton(text)] origin = ipv4_reverse_domain |
