X7ROOT File Manager
Current Path:
/usr/lib64/python2.7/site-packages/dns
usr
/
lib64
/
python2.7
/
site-packages
/
dns
/
📁
..
📄
__init__.py
(1.3 KB)
📄
__init__.pyc
(765 B)
📄
__init__.pyo
(765 B)
📄
dnssec.py
(14.37 KB)
📄
dnssec.pyc
(13.46 KB)
📄
dnssec.pyo
(13.38 KB)
📄
e164.py
(3.01 KB)
📄
e164.pyc
(2.76 KB)
📄
e164.pyo
(2.76 KB)
📄
edns.py
(4.21 KB)
📄
edns.pyc
(5.2 KB)
📄
edns.pyo
(5.2 KB)
📄
entropy.py
(3.79 KB)
📄
entropy.pyc
(3.7 KB)
📄
entropy.pyo
(3.7 KB)
📄
exception.py
(1.29 KB)
📄
exception.pyc
(1.56 KB)
📄
exception.pyo
(1.56 KB)
📄
flags.py
(2.62 KB)
📄
flags.pyc
(2.58 KB)
📄
flags.pyo
(2.58 KB)
📄
grange.py
(1.83 KB)
📄
grange.pyc
(1.15 KB)
📄
grange.pyo
(1.08 KB)
📄
hash.py
(2.34 KB)
📄
hash.pyc
(2.11 KB)
📄
hash.pyo
(2.11 KB)
📄
inet.py
(3.16 KB)
📄
inet.pyc
(2.61 KB)
📄
inet.pyo
(2.61 KB)
📄
ipv4.py
(1.81 KB)
📄
ipv4.pyc
(1.37 KB)
📄
ipv4.pyo
(1.37 KB)
📄
ipv6.py
(4.97 KB)
📄
ipv6.pyc
(3.44 KB)
📄
ipv6.pyo
(3.44 KB)
📄
message.py
(41.63 KB)
📄
message.pyc
(36.39 KB)
📄
message.pyo
(36.39 KB)
📄
name.py
(21.82 KB)
📄
name.pyc
(23 KB)
📄
name.pyo
(23 KB)
📄
namedict.py
(2.06 KB)
📄
namedict.pyc
(1.92 KB)
📄
namedict.pyo
(1.92 KB)
📄
node.py
(5.89 KB)
📄
node.pyc
(6.15 KB)
📄
node.pyo
(6.15 KB)
📄
opcode.py
(2.55 KB)
📄
opcode.pyc
(2.49 KB)
📄
opcode.pyo
(2.49 KB)
📄
query.py
(17.89 KB)
📄
query.pyc
(15.31 KB)
📄
query.pyo
(15.31 KB)
📄
rcode.py
(3.03 KB)
📄
rcode.pyc
(2.92 KB)
📄
rcode.pyo
(2.92 KB)
📄
rdata.py
(15.34 KB)
📄
rdata.pyc
(16.59 KB)
📄
rdata.pyo
(16.59 KB)
📄
rdataclass.py
(3.22 KB)
📄
rdataclass.pyc
(2.96 KB)
📄
rdataclass.pyo
(2.96 KB)
📄
rdataset.py
(11.28 KB)
📄
rdataset.pyc
(11.08 KB)
📄
rdataset.pyo
(11.03 KB)
📄
rdatatype.py
(5.07 KB)
📄
rdatatype.pyc
(5.29 KB)
📄
rdatatype.pyo
(5.29 KB)
📁
rdtypes
📄
renderer.py
(11.63 KB)
📄
renderer.pyc
(10.85 KB)
📄
renderer.pyo
(10.75 KB)
📄
resolver.py
(45.35 KB)
📄
resolver.pyc
(37.16 KB)
📄
resolver.pyo
(37.16 KB)
📄
reversename.py
(3.03 KB)
📄
reversename.pyc
(2.4 KB)
📄
reversename.pyo
(2.4 KB)
📄
rrset.py
(5.76 KB)
📄
rrset.pyc
(6.17 KB)
📄
rrset.pyo
(6.17 KB)
📄
set.py
(7.66 KB)
📄
set.pyc
(9.81 KB)
📄
set.pyo
(9.81 KB)
📄
tokenizer.py
(17.54 KB)
📄
tokenizer.pyc
(16.92 KB)
📄
tokenizer.pyo
(16.92 KB)
📄
tsig.py
(8.1 KB)
📄
tsig.pyc
(8.08 KB)
📄
tsig.pyo
(8.08 KB)
📄
tsigkeyring.py
(1.61 KB)
📄
tsigkeyring.pyc
(1.16 KB)
📄
tsigkeyring.pyo
(1.16 KB)
📄
ttl.py
(2.13 KB)
📄
ttl.pyc
(1.48 KB)
📄
ttl.pyo
(1.48 KB)
📄
update.py
(9.92 KB)
📄
update.pyc
(8.27 KB)
📄
update.pyo
(8.27 KB)
📄
version.py
(1.24 KB)
📄
version.pyc
(560 B)
📄
version.pyo
(560 B)
📄
wiredata.py
(2.53 KB)
📄
wiredata.pyc
(2.19 KB)
📄
wiredata.pyo
(2.19 KB)
📄
zone.py
(37.94 KB)
📄
zone.pyc
(33.52 KB)
📄
zone.pyo
(33.52 KB)
Editing: ipv6.py
# 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. """IPv6 helper functions.""" import re import dns.exception import dns.ipv4 _leading_zero = re.compile(r'0+([0-9a-f]+)') def inet_ntoa(address): """Convert a network format IPv6 address into text. @param address: the binary address @type address: string @rtype: string @raises ValueError: the address isn't 16 bytes long """ if len(address) != 16: raise ValueError("IPv6 addresses are 16 bytes long") hex = address.encode('hex_codec') chunks = [] i = 0 l = len(hex) while i < l: chunk = hex[i : i + 4] # strip leading zeros. we do this with an re instead of # with lstrip() because lstrip() didn't support chars until # python 2.2.2 m = _leading_zero.match(chunk) if not m is None: chunk = m.group(1) chunks.append(chunk) i += 4 # # Compress the longest subsequence of 0-value chunks to :: # best_start = 0 best_len = 0 start = -1 last_was_zero = False for i in xrange(8): if chunks[i] != '0': if last_was_zero: end = i current_len = end - start if current_len > best_len: best_start = start best_len = current_len last_was_zero = False elif not last_was_zero: start = i last_was_zero = True if last_was_zero: end = 8 current_len = end - start if current_len > best_len: best_start = start best_len = current_len if best_len > 1: if best_start == 0 and \ (best_len == 6 or best_len == 5 and chunks[5] == 'ffff'): # We have an embedded IPv4 address if best_len == 6: prefix = '::' else: prefix = '::ffff:' hex = prefix + dns.ipv4.inet_ntoa(address[12:]) else: hex = ':'.join(chunks[:best_start]) + '::' + \ ':'.join(chunks[best_start + best_len:]) else: hex = ':'.join(chunks) return hex _v4_ending = re.compile(r'(.*):(\d+\.\d+\.\d+\.\d+)$') _colon_colon_start = re.compile(r'::.*') _colon_colon_end = re.compile(r'.*::$') def inet_aton(text): """Convert a text format IPv6 address into network format. @param text: the textual address @type text: string @rtype: string @raises dns.exception.SyntaxError: the text was not properly formatted """ # # Our aim here is not something fast; we just want something that works. # if text == '::': text = '0::' # # Get rid of the icky dot-quad syntax if we have it. # m = _v4_ending.match(text) if not m is None: b = dns.ipv4.inet_aton(m.group(2)) text = "%s:%02x%02x:%02x%02x" % (m.group(1), ord(b[0]), ord(b[1]), ord(b[2]), ord(b[3])) # # Try to turn '::<whatever>' into ':<whatever>'; if no match try to # turn '<whatever>::' into '<whatever>:' # m = _colon_colon_start.match(text) if not m is None: text = text[1:] else: m = _colon_colon_end.match(text) if not m is None: text = text[:-1] # # Now canonicalize into 8 chunks of 4 hex digits each # chunks = text.split(':') l = len(chunks) if l > 8: raise dns.exception.SyntaxError seen_empty = False canonical = [] for c in chunks: if c == '': if seen_empty: raise dns.exception.SyntaxError seen_empty = True for i in xrange(0, 8 - l + 1): canonical.append('0000') else: lc = len(c) if lc > 4: raise dns.exception.SyntaxError if lc != 4: c = ('0' * (4 - lc)) + c canonical.append(c) if l < 8 and not seen_empty: raise dns.exception.SyntaxError text = ''.join(canonical) # # Finally we can go to binary. # try: return text.decode('hex_codec') except TypeError: raise dns.exception.SyntaxError _mapped_prefix = '\x00' * 10 + '\xff\xff' def is_mapped(address): return address.startswith(_mapped_prefix)
Upload File
Create Folder