home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_1689 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  1.6 KB  |  46 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import dns.name as dns
  5. import dns.ipv6 as dns
  6. import dns.ipv4 as dns
  7. ipv4_reverse_domain = dns.name.from_text('in-addr.arpa.')
  8. ipv6_reverse_domain = dns.name.from_text('ip6.arpa.')
  9.  
  10. def from_address(text):
  11.     
  12.     try:
  13.         parts = list(dns.ipv6.inet_aton(text).encode('hex_codec'))
  14.         origin = ipv6_reverse_domain
  15.     except:
  16.         parts = [ '%d' % ord(byte) for byte in dns.ipv4.inet_aton(text) ]
  17.         origin = ipv4_reverse_domain
  18.  
  19.     parts.reverse()
  20.     return dns.name.from_text('.'.join(parts), origin = origin)
  21.  
  22.  
  23. def to_address(name):
  24.     if name.is_subdomain(ipv4_reverse_domain):
  25.         name = name.relativize(ipv4_reverse_domain)
  26.         labels = list(name.labels)
  27.         labels.reverse()
  28.         text = '.'.join(labels)
  29.         return dns.ipv4.inet_ntoa(dns.ipv4.inet_aton(text))
  30.     if name.is_subdomain(ipv6_reverse_domain):
  31.         name = name.relativize(ipv6_reverse_domain)
  32.         labels = list(name.labels)
  33.         labels.reverse()
  34.         parts = []
  35.         i = 0
  36.         l = len(labels)
  37.         while i < l:
  38.             parts.append(''.join(labels[i:i + 4]))
  39.             i += 4
  40.             continue
  41.             name.is_subdomain(ipv4_reverse_domain)
  42.         text = ':'.join(parts)
  43.         return dns.ipv6.inet_ntoa(dns.ipv6.inet_aton(text))
  44.     raise dns.exception.SyntaxError, 'unknown reverse-map address family'
  45.  
  46.