PATH:
usr
/
lib64
/
python2.7
/
site-packages
/
dns
# Copyright (C) 2003-2007, 2009-2011 Nominum, Inc. # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose with or without fee is hereby granted, # provided that the above copyright notice and this permission notice # appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT # OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. """Generic Internet address helper functions.""" import socket import dns.ipv4 import dns.ipv6 # We assume that AF_INET is always defined. AF_INET = socket.AF_INET # AF_INET6 might not be defined in the socket module, but we need it. # We'll try to use the socket module's value, and if it doesn't work, # we'll use our own value. try: AF_INET6 = socket.AF_INET6 except AttributeError: AF_INET6 = 9999 def inet_pton(family, text): """Convert the textual form of a network address into its binary form. @param family: the address family @type family: int @param text: the textual address @type text: string @raises NotImplementedError: the address family specified is not implemented. @rtype: string """ if family == AF_INET: return dns.ipv4.inet_aton(text) elif family == AF_INET6: return dns.ipv6.inet_aton(text) else: raise NotImplementedError def inet_ntop(family, address): """Convert the binary form of a network address into its textual form. @param family: the address family @type family: int @param address: the binary address @type address: string @raises NotImplementedError: the address family specified is not implemented. @rtype: string """ if family == AF_INET: return dns.ipv4.inet_ntoa(address) elif family == AF_INET6: return dns.ipv6.inet_ntoa(address) else: raise NotImplementedError def af_for_address(text): """Determine the address family of a textual-form network address. @param text: the textual address @type text: string @raises ValueError: the address family cannot be determined from the input. @rtype: int """ try: junk = dns.ipv4.inet_aton(text) return AF_INET except: try: junk = dns.ipv6.inet_aton(text) return AF_INET6 except: raise ValueError def is_multicast(text): """Is the textual-form network address a multicast address? @param text: the textual address @raises ValueError: the address family cannot be determined from the input. @rtype: bool """ try: first = ord(dns.ipv4.inet_aton(text)[0]) return (first >= 224 and first <= 239) except: try: first = ord(dns.ipv6.inet_aton(text)[0]) return (first == 255) except: raise ValueError
[-] node.pyo
[edit]
[-] tokenizer.pyc
[edit]
[-] tokenizer.py
[edit]
[-] e164.pyc
[edit]
[-] rcode.pyc
[edit]
[-] rdataset.pyc
[edit]
[-] inet.pyc
[edit]
[-] __init__.pyo
[edit]
[-] rdataclass.pyo
[edit]
[-] edns.py
[edit]
[-] flags.py
[edit]
[-] tsig.py
[edit]
[-] update.pyo
[edit]
[-] edns.pyo
[edit]
[-] renderer.py
[edit]
[-] message.py
[edit]
[-] dnssec.py
[edit]
[-] query.py
[edit]
[-] ttl.pyc
[edit]
[-] opcode.py
[edit]
[-] rcode.pyo
[edit]
[+]
..
[-] reversename.py
[edit]
[-] tsig.pyo
[edit]
[-] rdatatype.pyc
[edit]
[-] dnssec.pyo
[edit]
[-] resolver.pyo
[edit]
[-] renderer.pyc
[edit]
[-] e164.pyo
[edit]
[-] rdataset.py
[edit]
[-] inet.pyo
[edit]
[-] rdatatype.py
[edit]
[-] query.pyo
[edit]
[-] zone.py
[edit]
[-] ipv6.py
[edit]
[-] __init__.pyc
[edit]
[-] namedict.py
[edit]
[-] hash.py
[edit]
[-] ipv6.pyo
[edit]
[-] grange.pyc
[edit]
[-] set.pyc
[edit]
[-] inet.py
[edit]
[-] exception.pyc
[edit]
[-] rdataclass.py
[edit]
[-] rrset.pyc
[edit]
[-] edns.pyc
[edit]
[-] zone.pyo
[edit]
[-] ttl.pyo
[edit]
[-] grange.pyo
[edit]
[-] dnssec.pyc
[edit]
[-] e164.py
[edit]
[-] message.pyc
[edit]
[-] rrset.pyo
[edit]
[-] entropy.pyo
[edit]
[-] flags.pyc
[edit]
[-] node.pyc
[edit]
[+]
rdtypes
[-] rdata.py
[edit]
[-] ipv4.pyo
[edit]
[-] hash.pyo
[edit]
[-] rdata.pyo
[edit]
[-] version.pyo
[edit]
[-] exception.py
[edit]
[-] tsigkeyring.pyc
[edit]
[-] rcode.py
[edit]
[-] rdata.pyc
[edit]
[-] wiredata.py
[edit]
[-] opcode.pyo
[edit]
[-] message.pyo
[edit]
[-] name.pyc
[edit]
[-] version.py
[edit]
[-] ttl.py
[edit]
[-] update.py
[edit]
[-] wiredata.pyc
[edit]
[-] grange.py
[edit]
[-] ipv6.pyc
[edit]
[-] tokenizer.pyo
[edit]
[-] name.py
[edit]
[-] version.pyc
[edit]
[-] namedict.pyc
[edit]
[-] hash.pyc
[edit]
[-] name.pyo
[edit]
[-] tsigkeyring.pyo
[edit]
[-] zone.pyc
[edit]
[-] renderer.pyo
[edit]
[-] set.py
[edit]
[-] resolver.py
[edit]
[-] rdataset.pyo
[edit]
[-] reversename.pyc
[edit]
[-] namedict.pyo
[edit]
[-] __init__.py
[edit]
[-] set.pyo
[edit]
[-] entropy.py
[edit]
[-] opcode.pyc
[edit]
[-] flags.pyo
[edit]
[-] resolver.pyc
[edit]
[-] ipv4.pyc
[edit]
[-] wiredata.pyo
[edit]
[-] ipv4.py
[edit]
[-] node.py
[edit]
[-] entropy.pyc
[edit]
[-] tsig.pyc
[edit]
[-] query.pyc
[edit]
[-] tsigkeyring.py
[edit]
[-] rdatatype.pyo
[edit]
[-] rdataclass.pyc
[edit]
[-] update.pyc
[edit]
[-] rrset.py
[edit]
[-] exception.pyo
[edit]
[-] reversename.pyo
[edit]