Current Path: > > > usr > lib > python3.6 > > > site-packages > dns
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
rdtypes | Directory | - | - | |
__init__.py | File | 1327 bytes | September 20 2016 16:24:02. | |
_compat.py | File | 1313 bytes | September 20 2016 16:24:02. | |
dnssec.py | File | 14791 bytes | September 20 2016 16:24:02. | |
e164.py | File | 3147 bytes | September 20 2016 16:24:02. | |
edns.py | File | 4384 bytes | September 20 2016 16:24:02. | |
entropy.py | File | 4465 bytes | September 20 2016 16:24:02. | |
exception.py | File | 4626 bytes | September 20 2016 19:13:40. | |
flags.py | File | 2664 bytes | September 20 2016 16:24:02. | |
grange.py | File | 1973 bytes | September 20 2016 16:24:02. | |
hash.py | File | 1100 bytes | September 20 2016 16:24:02. | |
inet.py | File | 3242 bytes | September 20 2016 16:24:02. | |
ipv4.py | File | 2031 bytes | September 20 2016 16:24:02. | |
ipv6.py | File | 5293 bytes | September 20 2016 16:24:02. | |
message.py | File | 43129 bytes | September 26 2016 15:38:18. | |
name.py | File | 29425 bytes | May 23 2024 10:29:27. | |
namedict.py | File | 3677 bytes | September 20 2016 16:24:02. | |
node.py | File | 6056 bytes | September 20 2016 16:24:02. | |
opcode.py | File | 2538 bytes | September 20 2016 16:24:02. | |
query.py | File | 19645 bytes | May 23 2024 10:29:27. | |
rcode.py | File | 3104 bytes | September 20 2016 16:24:02. | |
rdata.py | File | 14997 bytes | September 20 2016 16:24:02. | |
rdataclass.py | File | 3258 bytes | September 20 2016 16:24:02. | |
rdataset.py | File | 11556 bytes | September 20 2016 16:24:02. | |
rdatatype.py | File | 5339 bytes | September 20 2016 19:54:45. | |
renderer.py | File | 11923 bytes | September 20 2016 16:24:02. | |
resolver.py | File | 52105 bytes | September 26 2016 15:52:30. | |
reversename.py | File | 3311 bytes | September 20 2016 16:24:02. | |
rrset.py | File | 5995 bytes | September 25 2016 19:25:33. | |
set.py | File | 7715 bytes | September 20 2016 16:24:02. | |
tokenizer.py | File | 18313 bytes | September 20 2016 16:24:02. | |
tsig.py | File | 7718 bytes | September 20 2016 16:24:02. | |
tsigkeyring.py | File | 1737 bytes | September 20 2016 16:24:02. | |
ttl.py | File | 2283 bytes | September 20 2016 16:24:02. | |
update.py | File | 10012 bytes | September 20 2016 16:24:02. | |
version.py | File | 1258 bytes | September 20 2016 16:24:02. | |
wiredata.py | File | 3731 bytes | September 20 2016 16:24:02. | |
zone.py | File | 40026 bytes | September 29 2016 22:29:39. |
# Copyright (C) 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. import os import random import time from ._compat import long, binary_type try: import threading as _threading except ImportError: import dummy_threading as _threading class EntropyPool(object): def __init__(self, seed=None): self.pool_index = 0 self.digest = None self.next_byte = 0 self.lock = _threading.Lock() try: import hashlib self.hash = hashlib.sha1() self.hash_len = 20 except ImportError: try: import sha self.hash = sha.new() self.hash_len = 20 except ImportError: import md5 # pylint: disable=import-error self.hash = md5.new() self.hash_len = 16 self.pool = bytearray(b'\0' * self.hash_len) if seed is not None: self.stir(bytearray(seed)) self.seeded = True self.seed_pid = os.getpid() else: self.seeded = False self.seed_pid = 0 def stir(self, entropy, already_locked=False): if not already_locked: self.lock.acquire() try: for c in entropy: if self.pool_index == self.hash_len: self.pool_index = 0 b = c & 0xff self.pool[self.pool_index] ^= b self.pool_index += 1 finally: if not already_locked: self.lock.release() def _maybe_seed(self): if not self.seeded or self.seed_pid != os.getpid(): try: seed = os.urandom(16) except Exception: try: r = open('/dev/urandom', 'rb', 0) try: seed = r.read(16) finally: r.close() except Exception: seed = str(time.time()) self.seeded = True self.seed_pid = os.getpid() self.digest = None seed = bytearray(seed) self.stir(seed, True) def random_8(self): self.lock.acquire() try: self._maybe_seed() if self.digest is None or self.next_byte == self.hash_len: self.hash.update(binary_type(self.pool)) self.digest = bytearray(self.hash.digest()) self.stir(self.digest, True) self.next_byte = 0 value = self.digest[self.next_byte] self.next_byte += 1 finally: self.lock.release() return value def random_16(self): return self.random_8() * 256 + self.random_8() def random_32(self): return self.random_16() * 65536 + self.random_16() def random_between(self, first, last): size = last - first + 1 if size > long(4294967296): raise ValueError('too big') if size > 65536: rand = self.random_32 max = long(4294967295) elif size > 256: rand = self.random_16 max = 65535 else: rand = self.random_8 max = 255 return first + size * rand() // (max + 1) pool = EntropyPool() try: system_random = random.SystemRandom() except Exception: system_random = None def random_16(): if system_random is not None: return system_random.randrange(0, 65536) else: return pool.random_16() def between(first, last): if system_random is not None: return system_random.randrange(first, last + 1) else: return pool.random_between(first, last)
SILENT KILLER Tool