├── .dockerignore ├── .gitignore ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── axfr ├── .gitignore ├── axfr.sh ├── process-axfr.py └── verify-axfr.py ├── dnsbrute ├── __init__.py ├── __main__.py ├── checkresolvers.py ├── names.txt ├── names_small.txt └── resolvers.txt └── requirements.txt /.dockerignore: -------------------------------------------------------------------------------- 1 | axfr/axfr.db 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | axfr.db 3 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM jfloff/alpine-python:2.7-onbuild 2 | 3 | COPY . /root/dnsbrute-py/ 4 | 5 | WORKDIR /root/dnsbrute-py 6 | 7 | ENTRYPOINT ["/usr/bin/python", "-mdnsbrute"] -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016-present Xiphos Research Ltd. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | PYTHON ?= python 2 | DOCKERTAG ?= harryr/dnsbrute 3 | 4 | all: 5 | 6 | docker-run: docker-build 7 | docker run -ti $(DOCKERTAG) 8 | 9 | docker-build: 10 | docker build -t $(DOCKERTAG) . 11 | 12 | test: 13 | $(PYTHON) -mdnsbrute --debug -p example.com 14 | 15 | lint: 16 | $(PYTHON) -mpyflakes dnsbrute 17 | $(PYTHON) -mpylint -d missing-docstring -r n dnsbrute 18 | 19 | clean: 20 | find ./ -name '*.pyc' -exec rm -f '{}' ';' 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DNSbrute 2 | 3 | Fast and lightweight DNS sub-domain brute forcer, with a progres bar! 4 | 5 | A viable alternative or companion to [subbrute](https://github.com/TheRook/subbrute), [dnscan](https://github.com/rbsec/dnscan), [massdns](https://github.com/blechschmidt/massdns), [subsearch](https://github.com/gavia/subsearch), [dnsrecon](https://github.com/darkoperator/dnsrecon), [knock](https://github.com/guelfoweb/knock), [dns_extractor](https://github.com/eliasgranderubio/dns_extractor), [Bluto](https://github.com/darryllane/Bluto), [snoopbrute](https://github.com/m57/snoopbrute), [gobuster](https://github.com/OJ/gobuster), [fierce](https://github.com/davidpepper/fierce-domain-scanner), [dnsmap](https://github.com/makefu/dnsmap), [dnsenum](https://github.com/fwaeytens/dnsenum) and [DNS-Discovery](https://github.com/m0nad/DNS-Discovery). It seems everybody and their dog has made a DNS subdomain discovery tool! 6 | 7 | But, why is this one different? What else does it do? 8 | 9 | ## Features 10 | 11 | * Progress bar... awesomeness! 12 | * Wildcard elimination 13 | * JSON & text output 14 | * DNS resolver checker 15 | * Tunable retries & timeout 16 | * Free & liberal open-source 17 | 18 | ## TODO 19 | 20 | * DNS zone transfer 21 | * Randomized order & delay 22 | * Reverse DNS / PTR lookup 23 | * Queued processing (ZeroMQ, Beanstalkd etc) 24 | 25 | ## DNSbrute Usage 26 | 27 | ``` 28 | $ python -mdnsbrute 29 | usage: __main__.py [-h] [-p] [-q] [-v] [--debug] [-o OUTFILE] [-j OUTJSON] 30 | [-r RESOLVERS_FILE] [-n NAMES_FILE] [-d DOMAINS_FILE] 31 | [-W N] [-R N] [-C N] [-T SECS] 32 | [domain [domain ...]] 33 | 34 | DNS sub-domain brute forcer 35 | 36 | positional arguments: 37 | domain One or more domains 38 | 39 | optional arguments: 40 | -h, --help show this help message and exit 41 | -p, --progress Show progress bar with ETA 42 | -q, --quiet Don't print results to console 43 | -v, --verbose Log informational messages 44 | --debug Log debugging messages 45 | -o OUTFILE, --output OUTFILE 46 | Output results to file 47 | -j OUTJSON, --json OUTJSON 48 | Output results, as JSON to file 49 | -r RESOLVERS_FILE, --resolvers RESOLVERS_FILE 50 | Load DNS resolver servers from file 51 | -n NAMES_FILE, --names NAMES_FILE 52 | Load brute-force names from file 53 | -d DOMAINS_FILE, --domains DOMAINS_FILE 54 | Load target domains from file 55 | -W N, --wildcard-tests N 56 | Wildcard elimination test queries, default: 3 57 | -R N, --retries N Retries on failed DNS request, default: 2 58 | -C N, --concurrency N 59 | Concurrent DNS requests, default: 20 60 | -T SECS, --timeout SECS 61 | Timeout for DNS request in seconds, default: 1.5 62 | ``` 63 | 64 | ### checkresolvers usage 65 | 66 | ``` 67 | $ python -mdnsbrute.checkresolvers 68 | usage: checkresolvers.py [-h] [-o OUTFILE] [-D] [-T SECS] [-q] [-v] [--debug] 69 | [-r RESOLVERS_FILE] 70 | 71 | DNS resolver list checker 72 | 73 | optional arguments: 74 | -h, --help show this help message and exit 75 | -o OUTFILE, --output OUTFILE 76 | Output results to file 77 | -D, --download Download new list of resolvers from public-dns.info 78 | -T SECS, --timeout SECS 79 | Timeout for DNS request in seconds, default: 0.5 80 | -q, --quiet Don't print results to console 81 | -v, --verbose Log informational messages 82 | --debug Log debugging messages 83 | -r RESOLVERS_FILE, --resolvers RESOLVERS_FILE 84 | Load DNS resolver servers from file 85 | ``` 86 | 87 | ## Wordlist Generator 88 | 89 | Included with the dnsbrute source code are a collection of tools to extract 90 | DNS names from Bind style zone files, these can be extracted from Dig results, 91 | from AXFR transfer, or by scraping them from Bind config directories. 92 | 93 | Three scripts are included: 94 | 95 | * `axfr.sh` - Try to perform zone transfers on the Alexa top million 96 | * `process-axfr.py` - Extract names and record types from zone files into SQLite DB 97 | * `verify-axfr.py` - Verify which extracted names match zone files 98 | 99 | For your reference we provide a list of the top 20,000 DNS names as extracted 100 | from all servers in the Alexa top million which allow anonymous zone transfers ;) 101 | -------------------------------------------------------------------------------- /axfr/.gitignore: -------------------------------------------------------------------------------- 1 | axfr.db 2 | -------------------------------------------------------------------------------- /axfr/axfr.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # script by Hanno Böck, license CC0 / public domain 4 | # 5 | # Usage: 6 | # ./axfr.sh [csv] 7 | # 8 | # csv should be a file in the format of the Alexa 1 million database: 9 | # [number],[domain] 10 | 11 | mkdir -p out 12 | 13 | tmp=$(mktemp -d) 14 | 15 | for dd in `cat $1`; do 16 | 17 | d=$(echo $dd|sed -e 's:.*,::g') 18 | i=$(printf "%06d" `echo $dd|sed -e 's:,.*::g'`) 19 | echo $i $d 20 | 21 | ns=`dig +time=2 +tries=1 +short -t ns $d` 22 | 23 | for n in $ns; do 24 | echo checking $d $n 25 | dig +time=2 +tries=1 axfr $d @$n > $tmp/axfr 26 | grep "XFR" $tmp/axfr 27 | if [ $? -eq 0 ]; then 28 | echo + hit 29 | cp $tmp/axfr out/$i-$d-$n 30 | fi 31 | done 32 | done 33 | 34 | rm -rf $tmp 35 | -------------------------------------------------------------------------------- /axfr/process-axfr.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """ 3 | Converts AXFR results from Sonar from Dig format into just the subdomains and 4 | record type. e.g: 5 | 6 | ettoday.net. 3600 IN TXT "v=spf1 ip4:219.85.79.135 include:_spf.google.com ~all" 7 | ad.ettoday.net. 3600 IN A 219.85.79.136 8 | admin.ettoday.net. 3600 IN CNAME ns2.ettoday.net. 9 | buy.ettoday.net. 3600 IN A 219.85.79.138 10 | 11 | Becomes 12 | 13 | A 14 | ad A 15 | admin CNAME 16 | buy A 17 | 18 | This then needs passing to step2, which builds a probability map of the top 19 | most occuring words, or pairs of words, and which records are likely to exist. 20 | 21 | For example, 'dev' is a common subdomain, but so is 'admin.dev', and 22 | 'secure.dev'. 23 | 24 | After the list has been generated it can be tested against the original AXFR 25 | records to provide a coverage percentage, or accuracy rating. 26 | 27 | Download the dataset from: https://scans.io/study/hanno-axfr 28 | 29 | Extract to current directory, leave script running for N hours, use pypy! 30 | """ 31 | from __future__ import print_function 32 | import sys 33 | import os 34 | import re 35 | import sqlite3 36 | from collections import defaultdict 37 | 38 | 39 | AXFR_RE = re.compile(r'(?P[^\s]+)\s+(?P[0-9]+)\s+IN\s+(?P[^\s]+)\s+(?P.*)') 40 | 41 | 42 | def iter_names(names, maxlen=3): 43 | """ 44 | Converts a list of names into many chains of names, each up to `maxlen` 45 | long, e.g. "www.example.com" becomes "www" "www.example" "example" etc. 46 | """ 47 | for N in range(0, len(names)): 48 | yield names[N] 49 | if N < (len(names) - 1): 50 | for M in range(N, min(N + maxlen + 1, len(names) + 1)): 51 | if M - N > 1: 52 | yield '.'.join(names[N:M]) 53 | 54 | 55 | def load_file(csvfile): 56 | with open(csvfile, "r") as handle: 57 | data = handle.read() 58 | names = [] 59 | for match in AXFR_RE.finditer(data, re.MULTILINE): 60 | names.append((match.group(1).strip('.'), match.group(3))) 61 | suffix = os.path.commonprefix([X[0][::-1] for X in names])[::-1] 62 | names = filter(lambda X: X[0], 63 | [(X[0].replace(suffix, '').strip('.').lower(), X[1]) 64 | for X in names]) 65 | for name, rectype in set(names): 66 | if not name or name == '*': # Ignore single wildcard or empty 67 | continue 68 | if name[:2] == '*.': # Strip wildcard off beginning 69 | name = name[2:] 70 | subnames = name.split('.') 71 | for subname in iter_names(subnames): 72 | yield subname, rectype 73 | 74 | 75 | def flush_results(conn, inserts, updates): 76 | curs = conn.cursor() 77 | curs.executemany('INSERT OR IGNORE INTO axfr_counts VALUES (?, ?, 0, 0)', inserts) 78 | curs.executemany('UPDATE axfr_counts SET cnt = cnt + ? WHERE nom = ? AND rec = ?', updates) 79 | conn.commit() 80 | return [], [] 81 | 82 | 83 | def rollup_results(conn, results): 84 | inserts = [] 85 | updates = [] 86 | flushcnt = 0 87 | for (name, rectype), count in results.items(): 88 | inserts.append((name, rectype)) 89 | updates.append((count, name, rectype)) 90 | flushcnt += 1 91 | if flushcnt > 10000: 92 | inserts, updates = flush_results(conn, inserts, updates) 93 | flushcnt = 0 94 | print('.') 95 | #print(name, rectype, count) 96 | return defaultdict(int) 97 | 98 | 99 | def create_table(conn): 100 | curs = conn.cursor() 101 | curs.execute("DROP TABLE IF EXISTS axfr_counts") 102 | curs.execute(""" 103 | CREATE TABLE axfr_counts ( 104 | nom TEXT NOT NULL, 105 | rec TEXT NOT NULL, 106 | cnt INTEGER NOT NULL, 107 | vfy INTEGER NOT NULL, 108 | PRIMARY KEY (nom, rec) 109 | ) WITHOUT ROWID 110 | """) 111 | conn.commit() 112 | 113 | 114 | def main(): 115 | conn = sqlite3.connect('axfr.db') 116 | create_table(conn) 117 | 118 | csvdir = os.path.join(os.getcwd(), 'axfr') 119 | results = defaultdict(int) 120 | rolling = 0 121 | for filename in os.listdir(csvdir): 122 | for subname, rectype in load_file(os.path.join(csvdir, filename)): 123 | results[(subname, rectype)] += 1 124 | rolling += 1 125 | if rolling > 100000: 126 | results = rollup_results(conn, results) 127 | rolling = 0 128 | print("!") 129 | results = rollup_results(conn, results) 130 | 131 | 132 | if __name__ == "__main__": 133 | sys.exit(main()) 134 | -------------------------------------------------------------------------------- /axfr/verify-axfr.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """ 3 | This script will scan all AXFR records, and compare which of the subdomains and 4 | record types exist in the database, incrementing the 'verify' counter. 5 | 6 | After running this the database contains enough information to determine which 7 | keywords can be deleted, and which ones are useful. 8 | 9 | The following SQL query will provide the top 1000 most effective subdomains: 10 | 11 | SELECT nom, GROUP_CONCAT(rec), SUM(vfy) AS total_vfy, SUM(cnt) as total_cnt 12 | FROM axfr_counts GROUP BY nom ORDER BY total_vfy DESC LIMIT 1000; 13 | """ 14 | from __future__ import print_function 15 | import sys 16 | import os 17 | import re 18 | import sqlite3 19 | from collections import defaultdict 20 | 21 | 22 | AXFR_RE = re.compile(r'(?P[^\s]+)\s+(?P[0-9]+)\s+IN\s+(?P[^\s]+)\s+(?P.*)') 23 | 24 | 25 | def update_vfy(conn, entries): 26 | curs = conn.cursor() 27 | curs.executemany('UPDATE axfr_counts SET vfy = vfy + 1 WHERE nom = ? and rec = ?', entries) 28 | conn.commit() 29 | 30 | 31 | def load_file(conn, csvfile): 32 | print(csvfile) 33 | with open(csvfile, "r") as handle: 34 | data = handle.read() 35 | names = [] 36 | for match in AXFR_RE.finditer(data, re.MULTILINE): 37 | names.append((match.group(1).strip('.'), match.group(3))) 38 | suffix = os.path.commonprefix([X[0][::-1] for X in names])[::-1] 39 | names = filter(lambda X: X[0], 40 | [(X[0].replace(suffix, '').strip('.').lower(), X[1]) 41 | for X in names]) 42 | lookup_names = [] 43 | for name, rectype in set(names): 44 | if not name or name == '*': # Ignore single wildcard or empty 45 | continue 46 | if name[:2] == '*.': # Strip wildcard off beginning 47 | name = name[2:] 48 | lookup_names.append((name, rectype)) 49 | update_vfy(conn, lookup_names) 50 | 51 | 52 | def main(): 53 | conn = sqlite3.connect('axfr.db') 54 | 55 | csvdir = os.path.join(os.getcwd(), 'axfr') 56 | for filename in os.listdir(csvdir): 57 | load_file(conn, os.path.join(csvdir, filename)) 58 | 59 | 60 | if __name__ == "__main__": 61 | sys.exit(main()) 62 | -------------------------------------------------------------------------------- /dnsbrute/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import, print_function 2 | import os 3 | import base64 4 | import random 5 | import logging 6 | import json 7 | import struct 8 | from binascii import hexlify 9 | from gevent import monkey 10 | monkey.patch_all() 11 | import gevent.pool 12 | import dns.dnssec 13 | import dns.resolver 14 | import dns.rdatatype 15 | from dns.exception import DNSException 16 | import progressbar 17 | 18 | 19 | LOG = logging.getLogger(__name__) 20 | 21 | 22 | def keylength(alg, key): 23 | """ Returns the length in bits """ 24 | if alg == 5 or alg == 7 or alg == 8: 25 | # RSA, RFC 3110 26 | firstbyte = struct.unpack("B", key[0])[0] 27 | if firstbyte > 0: 28 | exponentlength = firstbyte + 1 29 | else: 30 | exponentlength = struct.unpack(">H", key[1:3])[0] + 3 31 | return (len(key)-exponentlength)*8 32 | else: 33 | # Unknown, best guess. Read the RFCs 6605 or 5933 to find out 34 | # the format of ECDSA or GOST keys. 35 | return len(key)*8 36 | 37 | 38 | def rand_name(): 39 | return base64.b32encode(os.urandom(50))[:random.randint(10, 30)].lower() 40 | 41 | 42 | class DNSNameTester(object): 43 | __slots__ = ('bruter', 'domain', 'name', 'rectypes') 44 | 45 | def __init__(self, bruter, domain, name=None, rectypes=None): 46 | self.bruter = bruter 47 | self.domain = domain 48 | self.name = name 49 | self.rectypes = rectypes 50 | 51 | def run(self): 52 | lookups = self.rectypes or ['CNAME', 'A', 'AAAA'] 53 | dnsname = self.domain 54 | if self.name is None: 55 | # Top-level, needs extra queries 56 | lookups += ['MX', 'SOA', 'NS', 'SRV', 'TXT', 'SPF', 'RRSIG', 'DS', 57 | 'DLV', 'DNSKEY'] 58 | else: 59 | dnsname = '.'.join([self.name, dnsname]) 60 | for query_type in set(lookups): 61 | resp = None 62 | LOG.debug("Checking %s %s", dnsname, query_type) 63 | try: 64 | resp = self.bruter.query(dnsname, query_type) 65 | except DNSException: 66 | continue 67 | except Exception: 68 | LOG.exception("While resolving %s %s", dnsname, query_type) 69 | continue 70 | self.bruter.on_result(self.domain, self.name, query_type, resp) 71 | self.bruter.on_finish() 72 | 73 | 74 | class DNSTesterGenerator(object): 75 | __slots__ = ('bruter', 'domains', 'names', 'total') 76 | 77 | def __init__(self, bruter, domains, names): 78 | self.bruter = bruter 79 | self.domains = domains 80 | self.names = names 81 | self.total = (len(self.domains) * len(self.names)) + len(self.domains) 82 | 83 | def all(self): 84 | for domain in self.domains: 85 | yield DNSNameTester(self.bruter, domain) 86 | for name, rectypes in self.names: 87 | yield DNSNameTester(self.bruter, domain, name, rectypes) 88 | 89 | 90 | class DNSBrute(object): 91 | def __init__(self, options): 92 | self.wildcards = [] 93 | self.options = options 94 | self.domains = [] 95 | if options.domains: 96 | self.domains += filter(None, options.domains.read().split("\n")) 97 | self.domains += options.domain 98 | self.domains = list(set(self.domains)) 99 | random.shuffle(self.domains) 100 | self.resolvers = map(str.strip, filter(None, options.resolvers.read().split("\n"))) 101 | random.shuffle(self.resolvers) 102 | self.names = [X for X in self._load_names(options.names)] 103 | if options.progress: 104 | self.progress = progressbar.ProgressBar( 105 | redirect_stdout=True, 106 | redirect_stderr=True, 107 | widgets=[ 108 | progressbar.Percentage(), 109 | progressbar.Bar(), 110 | ' (', progressbar.ETA(), ') ', 111 | ]) 112 | else: 113 | self.progress = None 114 | self.finished = 0 115 | LOG.info("%d names, %d resolvers, %d domains", 116 | len(self.names), len(self.resolvers), len(self.domains)) 117 | 118 | def _load_names(self, handle): 119 | """ 120 | Load brute force names, and optionally record types 121 | """ 122 | for line in handle: 123 | entry = line.strip().split(" ", 2) 124 | rectypes = None 125 | if len(entry) > 1: 126 | rectypes = entry[1].split(',') 127 | yield entry[0], rectypes 128 | 129 | def valid(self): 130 | return len(self.domains) and len(self.resolvers) and len(self.names) 131 | 132 | def _output_result(self, domain, name, query_type, result): 133 | """ 134 | Output results, in various formats, to necessary places 135 | """ 136 | # To console 137 | if name is None: 138 | dnsname = domain 139 | else: 140 | dnsname = '.'.join([name, domain]) 141 | res_keys = ' '.join(['='.join([key, str(value)]) 142 | for key, value in result.items()]) 143 | info = ' '.join([dnsname, query_type, res_keys]) 144 | if not self.options.quiet: 145 | print(info) 146 | # 147 | # Shit out same as console, but to file 148 | output = self.options.output 149 | if output: 150 | output.write(info + "\n") 151 | output.flush() 152 | # 153 | # Optionally shit out JSON 154 | outjson = self.options.json 155 | if outjson: 156 | outdict = result.copy() 157 | outdict['_type'] = query_type 158 | outdict['_domain'] = domain 159 | outdict['_name'] = name 160 | outdict.update(self.options.extra) 161 | if name and name[0] == '*': 162 | outdict['_wildcard'] = True 163 | outjson.write(json.dumps(outdict) + "\n") 164 | outjson.flush() 165 | 166 | def _dnsresp_to_dict(self, obj): 167 | """ 168 | Converts DNS reponse into a normalised dictionary 169 | """ 170 | rdtype = obj.rdtype 171 | if rdtype in (dns.rdatatype.A, dns.rdatatype.AAAA): 172 | return dict(host=obj.address) 173 | elif rdtype == dns.rdatatype.SOA: 174 | return dict(retry=obj.retry, serial=obj.serial, expires=obj.expire, 175 | refresh=obj.refresh, minttl=obj.minimum, 176 | hostmaster=str(obj.rname), nsname=str(obj.mname)) 177 | elif rdtype == dns.rdatatype.NS: 178 | return dict(host=str(obj.target)) 179 | elif rdtype == dns.rdatatype.MX: 180 | return dict(priority=obj.preference, host=str(obj.exchange)) 181 | elif rdtype == dns.rdatatype.CNAME: 182 | return dict(cname=str(obj.target)) 183 | elif rdtype in (dns.rdatatype.TXT, dns.rdatatype.SPF): 184 | return dict(text=" ".join(obj.strings)) 185 | elif rdtype == dns.rdatatype.SRV: 186 | return dict(priority=obj.priority, host=str(obj.target), port=obj.port, 187 | weight=obj.weight) 188 | elif rdtype == dns.rdatatype.DS: 189 | return dict(keytag=obj.key_tag, hashtype=obj.digest_type, 190 | hash=hexlify(obj.digest)) 191 | elif rdtype == dns.rdatatype.DLV: 192 | return dict(keytag=obj.key_tag, hashtype=obj.digest_type) 193 | elif rdtype == dns.rdatatype.DNSKEY: 194 | return dict(keytag=dns.dnssec.key_id(obj), protocol=obj.protocol, 195 | flags=obj.flags, algorithm=obj.algorithm, 196 | length=keylength(obj.algorithm, obj.key), 197 | key=hexlify(obj.key)) 198 | raise RuntimeError("Unknown DNS response type %r" % (obj,)) 199 | # 'RRSIG', 'DS', 'DLV', 'DNSKEY', 'NSEC', 'NSEC3', 'NSEC3PARAM'] 200 | # TODO: add DS, DLV, RRSIG, NSEC, NSEC3, PTR, DNSKEY, SSHFP, NAPTR 201 | 202 | def _format_results(self, query_type, response): 203 | return [ 204 | (query_type, self._dnsresp_to_dict(answer)) 205 | for answer in response.rrset 206 | ] 207 | 208 | def on_finish(self): 209 | if self.progress: 210 | try: 211 | self.progress.update(self.finished) 212 | except Exception: 213 | self.progress.update(progressbar.UnknownLength) 214 | self.finished += 1 215 | 216 | def on_result(self, domain, dnsname, query_type, resp): 217 | """ 218 | When a DNS name tester finds a result, it triggers this 219 | """ 220 | try: 221 | results = self._format_results(query_type, resp) 222 | for _, result in results: 223 | if not self._is_wildcard(domain, query_type, result): 224 | self._output_result(domain, dnsname, query_type, result) 225 | except Exception: 226 | LOG.exception('While outputting: %r', (domain, dnsname, query_type, 227 | resp)) 228 | 229 | def query(self, name, query_type): 230 | """ 231 | Perform a DNS query for the DNS `name`, of `query_type` (e.g. A, AAAA) 232 | """ 233 | resolver = dns.resolver.Resolver() 234 | resolver.timeout = self.options.timeout 235 | resolver.lifetime = self.options.timeout * self.options.retries 236 | # N random nameservers are chosen from the list 237 | sample_size = self.options.retries * 3 238 | resolver.nameservers = random.sample(self.resolvers, sample_size) 239 | resolver.rotate = True 240 | return resolver.query(name, rdtype=query_type) 241 | 242 | def _is_wildcard(self, domain, query_type, result): 243 | # TODO: other wildcard response types? 244 | if query_type in ['CNAME']: 245 | return (domain, query_type, result['cname']) in self.wildcards 246 | elif query_type in ['A', 'AAAA']: 247 | return (domain, query_type, result['host']) in self.wildcards 248 | 249 | def _add_wildcard(self, domain, query_type, result): 250 | """ 251 | Remember the result as a wildcard, it will be ignored in future... 252 | """ 253 | if query_type == 'CNAME': 254 | entry = (domain, query_type, result['cname']) 255 | else: 256 | entry = (domain, query_type, result['host']) 257 | if entry not in self.wildcards: 258 | LOG.debug('Wildcard response for %s: %s %r', 259 | domain, query_type, result) 260 | self._output_result(domain, '*', query_type, result) 261 | self.wildcards.append(entry) 262 | 263 | def _test_wildcard(self, domain, name): 264 | """ 265 | Determine if a subdomain returns a wildcard entry 266 | """ 267 | for query_type in ['A', 'AAAA', 'CNAME']: 268 | dnsname = name + '.' + domain 269 | try: 270 | resp = self.query(dnsname, query_type) 271 | except DNSException: 272 | # This is expected, but we ignore return type 273 | continue 274 | except Exception: 275 | LOG.exception("Whoopsie while testing wildcard") 276 | continue 277 | for query_type, result in self._format_results(query_type, resp): 278 | self._add_wildcard(domain, query_type, result) 279 | self.on_finish() 280 | 281 | def _find_wildcards(self): 282 | """ 283 | Queries some random non-existant records to reduce false positives. 284 | Returns True if process can continue, otherwise false. 285 | """ 286 | wildcard_count = self.options.wildcard_tests 287 | if wildcard_count < 1: 288 | return True 289 | total_queries = len(self.domains) * wildcard_count 290 | LOG.info("Eliminating wildcard responses (%d tests)", total_queries) 291 | is_ok = False 292 | # Setup pool and progress 293 | pool = gevent.pool.Pool(self.options.concurrency) 294 | if self.progress: 295 | self.progress.start(total_queries) 296 | self.finished = 0 297 | try: 298 | for domain in self.domains: 299 | LOG.debug("Checking wildcard domain: %s", domain) 300 | names = [rand_name() for _ in range(0, wildcard_count)] 301 | for name in names: 302 | pool.add(gevent.spawn(self._test_wildcard, domain, name)) 303 | is_ok = True 304 | except KeyboardInterrupt: 305 | print("Ctrl+C caught... stopping") 306 | pool.join() 307 | if self.progress: 308 | self.progress.finish() 309 | return is_ok 310 | 311 | def run(self): 312 | if not self._find_wildcards(): 313 | return 314 | pool = gevent.pool.Pool(self.options.concurrency) 315 | namegen = DNSTesterGenerator(self, self.domains, self.names) 316 | LOG.info("Starting DNS brute force (%d tests)", namegen.total) 317 | self.finished = 0 318 | if self.progress: 319 | self.progress.start(namegen.total) 320 | try: 321 | for tester in namegen.all(): 322 | pool.add(gevent.spawn(tester.run)) 323 | except KeyboardInterrupt: 324 | print("Ctrl+C caught... stopping") 325 | pool.join() 326 | if self.progress: 327 | self.progress.finish() 328 | -------------------------------------------------------------------------------- /dnsbrute/__main__.py: -------------------------------------------------------------------------------- 1 | from __future__ import print_function 2 | import sys 3 | import argparse 4 | import logging 5 | import pkg_resources 6 | from . import DNSBrute 7 | 8 | 9 | 10 | def main(): 11 | parser = argparse.ArgumentParser(description='DNS sub-domain brute forcer') 12 | parser.add_argument('-p', '--progress', action='store_true', 13 | help='Show progress bar with ETA') 14 | parser.add_argument('-q', '--quiet', action='store_true', 15 | help="Don't print results to console") 16 | parser.add_argument('-v', '--verbose', action='store_const', 17 | dest="loglevel", const=logging.INFO, 18 | help="Log informational messages") 19 | parser.add_argument('--debug', action='store_const', dest="loglevel", 20 | const=logging.DEBUG, default=logging.WARNING, 21 | help="Log debugging messages") 22 | parser.add_argument('-o', '--output', metavar='OUTFILE', 23 | type=argparse.FileType('w+'), 24 | help="Output results to file") 25 | parser.add_argument('-j', '--json', metavar='OUTJSON', 26 | type=argparse.FileType('w+'), 27 | help="Output results, as JSON to file") 28 | parser.add_argument('-r', '--resolvers', metavar='RESOLVERS_FILE', 29 | default=pkg_resources.resource_stream(__name__, "resolvers.txt"), 30 | type=argparse.FileType('r'), 31 | help="Load DNS resolver servers from file") 32 | parser.add_argument('-n', '--names', metavar='NAMES_FILE', 33 | default=pkg_resources.resource_stream(__name__, "names_small.txt"), 34 | type=argparse.FileType('r'), 35 | help="Load brute-force names from file") 36 | parser.add_argument('-d', '--domains', metavar='DOMAINS_FILE', 37 | type=argparse.FileType('r'), 38 | help="Load target domains from file") 39 | parser.add_argument('-x', '--extra', metavar='K=V', action='append', 40 | help="Extra variables for JSON output") 41 | parser.add_argument('-W', '--wildcard-tests', default=3, type=int, metavar='N', 42 | help="Wildcard elimination test queries, default: 3") 43 | parser.add_argument('-R', '--retries', default=2, type=int, metavar='N', 44 | help="Retries on failed DNS request, default: 2") 45 | parser.add_argument('-C', '--concurrency', default=20, type=int, 46 | help="Concurrent DNS requests, default: 20", metavar='N') 47 | parser.add_argument('-T', '--timeout', default=1.5, type=float, metavar='SECS', 48 | help="Timeout for DNS request in seconds, default: 1.5") 49 | parser.add_argument('domain', nargs='*', help='One or more domains') 50 | args = parser.parse_args() 51 | logging.basicConfig(level=args.loglevel) 52 | args.extra = dict([X.split('=', 1) for X in args.extra or []]) 53 | bruter = DNSBrute(args) 54 | if not bruter.valid(): 55 | parser.print_help() 56 | return 1 57 | bruter.run() 58 | return 0 59 | 60 | 61 | if __name__ == "__main__": 62 | sys.exit(main()) 63 | -------------------------------------------------------------------------------- /dnsbrute/checkresolvers.py: -------------------------------------------------------------------------------- 1 | from __future__ import print_function 2 | import sys 3 | import os 4 | import base64 5 | import argparse 6 | import logging 7 | import random 8 | import time 9 | import requests 10 | import pkg_resources 11 | import progressbar 12 | import gevent 13 | import gevent.pool 14 | from dns.resolver import Resolver, Answer, NXDOMAIN, NoNameservers 15 | from dns.exception import DNSException 16 | 17 | 18 | LOG = logging.getLogger(__name__) 19 | 20 | 21 | # http://stackoverflow.com/questions/287871/print-in-terminal-with-colors-using-python 22 | class bcolors: 23 | HEADER = '\033[95m' 24 | OKBLUE = '\033[94m' 25 | OKGREEN = '\033[92m' 26 | WARNING = '\033[93m' 27 | FAIL = '\033[91m' 28 | ENDC = '\033[0m' 29 | BOLD = '\033[1m' 30 | UNDERLINE = '\033[4m' 31 | 32 | 33 | def mean(numbers): 34 | return float(sum(numbers)) / max(len(numbers), 1) 35 | 36 | 37 | def check_results(results): 38 | avg = mean([X for X, _ in results]) 39 | return avg, all([isinstance(X, Answer) for _, X in results]) 40 | 41 | 42 | def time_resolve(args, server, name, rectype, tries=3): 43 | """ 44 | Time how long it takes to resolve a name using the server 45 | """ 46 | resolver = Resolver() 47 | resolver.timeout = args.timeout 48 | resolver.lifetime = args.timeout 49 | resolver.nameservers = [server] 50 | results = [] 51 | 52 | while tries > 0: 53 | start = time.time() 54 | try: 55 | result = resolver.query(name, rectype) 56 | except DNSException as ex: 57 | end = time.time() 58 | LOG.debug("%s failed in %.2fs", server, end - start) 59 | result = ex 60 | else: 61 | end = time.time() 62 | LOG.debug("%s resolved %s %s in %.2fs", server, name, rectype, end - start) 63 | results.append((end - start, result)) 64 | tries -= 1 65 | return server, check_results(results), results 66 | 67 | 68 | def check_for_wildcards(args, server, name, rectype, tries=4): 69 | """ 70 | Verify that the DNS server doesn't return wildcard results for domains 71 | which don't exist, it should correctly return NXDOMAIN. 72 | """ 73 | resolver = Resolver() 74 | resolver.timeout = args.timeout 75 | resolver.lifetime = args.timeout 76 | resolver.nameservers = [server] 77 | nx_names = [base64.b32encode( 78 | os.urandom( 79 | random.randint(8, 10)) 80 | ).strip('=').lower() + name 81 | for _ in range(0, tries)] 82 | correct_result_count = 0 83 | for check_nx_name in nx_names: 84 | try: 85 | result = resolver.query(check_nx_name, rectype) 86 | return False # Any valid response = immediate fail! 87 | except (NXDOMAIN, NoNameservers): 88 | correct_result_count += 1 89 | except DNSException: 90 | continue 91 | return correct_result_count > (tries / 2.0) 92 | 93 | 94 | def check_resolver(args, resolver): 95 | """ 96 | Ensure that the resolver passes all integrity checks, and output to save 97 | list if it does. The checks are: 98 | 99 | * Consistently and quickly resolves valid domains 100 | * Doesn't return results for invalid domains 101 | """ 102 | bad_reason = "" 103 | server, (avgtime, isgood), _ = time_resolve(args, resolver, "example.com", "A") 104 | if not isgood: 105 | bad_reason = "TIMEOUT" 106 | else: 107 | for rectype in ["A", "AAAA", "MX", "SOA"]: 108 | if not check_for_wildcards(args, resolver, "example.com", rectype): 109 | bad_reason = "WILDCARD-" + rectype 110 | isgood = False 111 | break 112 | 113 | if args.output and isgood: 114 | args.output.write(server + "\n") 115 | args.output.flush() 116 | 117 | if not args.quiet: 118 | color = bcolors.OKGREEN if isgood else bcolors.FAIL 119 | print("%s%s (%.2fs) %s%s" % (color, server, avgtime, bad_reason, bcolors.ENDC)) 120 | sys.stdout.flush() 121 | 122 | 123 | def download_resolvers(): 124 | LOG.info("Downloading nameservers from public-dns.info") 125 | resp = requests.get('http://public-dns.info/nameservers.txt') 126 | resp.raise_for_status() 127 | return map(str.strip, filter(None, str(resp.text).split("\n"))) 128 | 129 | 130 | def load_resolvers(handle): 131 | return map(str.strip, filter(None, handle.read().split("\n"))) 132 | 133 | 134 | def run(args): 135 | if args.download: 136 | resolvers = download_resolvers() 137 | else: 138 | resolvers = load_resolvers(args.resolvers) 139 | random.shuffle(resolvers) 140 | 141 | pool = gevent.pool.Pool(args.concurrency) 142 | 143 | bar = progressbar.ProgressBar(redirect_stdout=True, redirect_stderr=True) 144 | for resolver in bar(resolvers): 145 | pool.add(gevent.spawn(check_resolver, args, resolver)) 146 | pool.join() 147 | 148 | 149 | def main(): 150 | parser = argparse.ArgumentParser(description='DNS resolver list checker') 151 | parser.add_argument('-o', '--output', metavar='OUTFILE', 152 | type=argparse.FileType('w+'), 153 | help="Output results to file") 154 | parser.add_argument('-r', '--resolvers', metavar='RESOLVERS_FILE', 155 | default=pkg_resources.resource_stream(__name__, "resolvers.txt"), 156 | type=argparse.FileType('r'), 157 | help="Load DNS resolver servers from file") 158 | parser.add_argument('-d', '--download', action='store_true', 159 | help='Download new list of resolvers from public-dns.info') 160 | parser.add_argument('-T', '--timeout', default=0.5, type=float, metavar='SECS', 161 | help="Timeout for DNS request in seconds, default: 0.5") 162 | parser.add_argument('-C', '--concurrency', default=10, type=int, 163 | help="Concurrent DNS requests, default: 10", metavar='N') 164 | parser.add_argument('-q', '--quiet', action='store_true', 165 | help="Don't print results to console") 166 | parser.add_argument('-v', '--verbose', action='store_const', 167 | dest="loglevel", const=logging.INFO, 168 | help="Log informational messages") 169 | parser.add_argument('--debug', action='store_const', dest="loglevel", 170 | const=logging.DEBUG, default=logging.WARNING, 171 | help="Log debugging messages") 172 | args = parser.parse_args() 173 | logging.basicConfig(level=args.loglevel) 174 | 175 | run(args) 176 | 177 | 178 | if __name__ == "__main__": 179 | main() 180 | -------------------------------------------------------------------------------- /dnsbrute/resolvers.txt: -------------------------------------------------------------------------------- 1 | 141.1.27.249 2 | 194.190.225.2 3 | 194.225.16.5 4 | 91.185.6.10 5 | 194.2.0.50 6 | 66.187.16.5 7 | 83.222.161.130 8 | 69.60.160.196 9 | 194.150.118.3 10 | 84.8.2.11 11 | 195.175.39.40 12 | 193.239.159.37 13 | 205.152.6.20 14 | 82.151.90.1 15 | 144.76.202.253 16 | 103.3.46.254 17 | 5.144.17.119 18 | 195.129.12.122 19 | 211.35.96.6 20 | 202.138.120.4 21 | 209.130.139.2 22 | 64.81.127.2 23 | 202.199.160.206 24 | 195.66.68.2 25 | 103.3.76.7 26 | 202.219.177.121 27 | 216.143.135.12 28 | 141.211.144.17 29 | 101.203.168.123 30 | 217.73.17.110 31 | 205.242.187.234 32 | 62.192.160.39 33 | 187.115.52.101 34 | 122.155.167.38 35 | 203.229.169.69 36 | 69.25.1.1 37 | 121.52.87.38 38 | 209.51.161.58 39 | 80.72.146.2 40 | 195.245.76.6 41 | 149.156.64.210 42 | 195.74.128.6 43 | 81.15.197.10 44 | 213.0.77.5 45 | 212.89.130.180 46 | 91.194.112.10 47 | 203.146.237.222 48 | 1.2.4.8 49 | 200.118.2.88 50 | 213.131.178.10 51 | 203.63.8.27 52 | 62.168.59.67 53 | 200.175.3.232 54 | 205.151.222.250 55 | 213.115.244.69 56 | 81.200.80.11 57 | 195.206.7.98 58 | 213.201.230.20 59 | 63.146.122.11 60 | 188.94.19.10 61 | 114.114.114.119 62 | 203.189.89.29 63 | 190.9.57.2 64 | 193.52.218.19 65 | 62.183.50.230 66 | 129.7.1.6 67 | 202.248.37.74 68 | 141.211.125.15 69 | 91.195.202.131 70 | 146.94.1.3 71 | 35.8.2.41 72 | 206.13.29.12 73 | 63.218.44.186 74 | 83.242.139.11 75 | 217.117.111.1 76 | 66.250.7.154 77 | 213.157.176.3 78 | 38.98.10.132 79 | 84.21.31.230 80 | 213.144.3.210 81 | 89.140.140.8 82 | 195.67.27.18 83 | 200.62.64.1 84 | 212.57.190.166 85 | 82.115.163.2 86 | 207.91.130.4 87 | 213.235.248.245 88 | 67.90.152.122 89 | 79.140.66.38 90 | 208.67.220.220 91 | 195.189.131.1 92 | 212.30.96.211 93 | 202.14.67.4 94 | 205.134.162.209 95 | 213.169.55.10 96 | 217.169.242.2 97 | 212.24.98.97 98 | 209.55.0.110 99 | 15.227.128.50 100 | 159.90.200.8 101 | 216.244.192.3 102 | 212.16.72.254 103 | 195.54.152.2 104 | 147.29.10.6 105 | 69.67.254.2 106 | 110.170.117.15 107 | 217.76.240.2 108 | 202.43.178.244 109 | 101.255.64.74 110 | 85.185.6.35 111 | 72.37.141.91 112 | 129.219.13.81 113 | 204.95.160.2 114 | 103.9.124.89 115 | 210.248.255.82 116 | 205.151.222.251 117 | 212.214.82.198 118 | 82.212.67.100 119 | 108.61.213.134 120 | 213.55.96.166 121 | 121.194.2.2 122 | 93.188.152.3 123 | 198.6.1.3 124 | 64.215.98.148 125 | 193.252.247.52 126 | 164.124.101.82 127 | 82.182.37.49 128 | 212.37.208.3 129 | 213.184.242.6 130 | 212.236.250.4 131 | 193.89.221.2 132 | 194.39.185.10 133 | 70.36.0.5 134 | 91.189.0.5 135 | 217.71.105.254 136 | 203.238.227.100 137 | 203.109.129.68 138 | 115.68.45.3 139 | 193.109.4.5 140 | 134.60.1.111 141 | 78.143.192.10 142 | 212.97.32.2 143 | 212.57.190.166 144 | 200.175.3.30 145 | 193.27.80.34 146 | 165.194.1.1 147 | 194.25.0.60 148 | 203.189.89.36 149 | 216.66.22.2 150 | 213.143.96.1 151 | 213.184.0.42 152 | 62.24.228.202 153 | 91.214.72.34 154 | 194.169.244.33 155 | 192.116.16.26 156 | 95.85.9.86 157 | 91.188.0.5 158 | 211.60.155.5 159 | 209.145.176.20 160 | 210.131.113.123 161 | 217.113.48.1 162 | 131.191.7.12 163 | 64.105.163.106 164 | 203.189.89.82 165 | 69.7.192.2 166 | 110.76.151.254 167 | 212.9.160.1 168 | 216.184.96.5 169 | 61.63.0.66 170 | 103.20.188.35 171 | 195.234.101.234 172 | 62.231.76.49 173 | 208.72.120.204 174 | 209.213.64.2 175 | 213.211.50.2 176 | 83.137.41.9 177 | 195.113.144.194 178 | 66.163.0.173 179 | 109.69.8.34 180 | 202.180.160.1 181 | 216.81.128.132 182 | 103.9.124.145 183 | 92.43.224.1 184 | 63.105.204.164 185 | 212.96.1.70 186 | 213.157.196.130 187 | 81.173.113.30 188 | 216.185.64.6 189 | 212.26.6.11 190 | 64.79.224.3 191 | 62.243.190.9 192 | 194.1.154.37 193 | 193.186.162.3 194 | 212.66.0.1 195 | 195.175.39.39 196 | 198.6.1.5 197 | 62.77.85.100 198 | 178.212.102.76 199 | 217.151.0.50 200 | 212.53.35.20 201 | 101.255.64.62 202 | 203.189.88.148 203 | 213.157.0.193 204 | 217.30.50.100 205 | 178.151.86.169 206 | 193.33.114.2 207 | 193.228.86.5 208 | 195.170.55.1 209 | 148.160.20.195 210 | 194.132.119.151 211 | 64.181.43.34 212 | 203.133.1.8 213 | 83.233.78.163 214 | 62.76.76.62 215 | 64.105.202.138 216 | 217.197.84.69 217 | 212.34.194.211 218 | 202.91.8.219 219 | 122.0.0.13 220 | 216.17.128.2 221 | 195.166.192.1 222 | 200.95.144.4 223 | 202.116.128.1 224 | 193.255.146.53 225 | 202.65.159.4 226 | 216.47.160.13 227 | 117.102.224.26 228 | 64.85.177.11 229 | 168.88.66.6 230 | 195.234.101.234 231 | 83.177.163.51 232 | 84.45.85.23 233 | 101.255.64.114 234 | 198.60.22.2 235 | 66.165.173.235 236 | 50.9.119.3 237 | 195.177.240.3 238 | 194.169.205.1 239 | 151.236.6.156 240 | 194.28.223.2 241 | 195.158.239.4 242 | 178.161.146.10 243 | 64.94.1.33 244 | 216.81.96.68 245 | 63.251.161.33 246 | 199.44.194.2 247 | 159.90.200.7 248 | 217.18.206.22 249 | 101.255.64.227 250 | 217.77.223.114 251 | 122.155.167.8 252 | 194.246.126.68 253 | 93.91.146.150 254 | 205.211.206.141 255 | 82.99.212.18 256 | 80.66.0.30 257 | 212.37.208.4 258 | 203.189.89.209 259 | 209.252.33.101 260 | 212.85.128.2 261 | 196.29.40.3 262 | 61.31.233.1 263 | 213.157.0.194 264 | 203.115.225.25 265 | 195.140.236.250 266 | 62.243.190.7 267 | 193.232.69.22 268 | 87.204.12.134 269 | 209.183.48.21 270 | 85.185.144.136 271 | 206.126.32.101 272 | 217.149.17.1 273 | 111.223.252.193 274 | 200.85.0.105 275 | 194.145.147.195 276 | 194.226.48.12 277 | 216.186.27.15 278 | 216.21.128.22 279 | 77.241.112.23 280 | 89.146.204.5 281 | 207.190.94.129 282 | 211.78.130.10 283 | 210.23.64.1 284 | 95.86.129.42 285 | 200.85.44.70 286 | 83.170.69.2 287 | 193.231.173.2 288 | 193.142.218.3 289 | 157.157.90.193 290 | 213.88.195.147 291 | 83.97.97.3 292 | 194.150.168.168 293 | 212.42.165.37 294 | 217.168.40.198 295 | 66.216.18.222 296 | 194.141.45.4 297 | 198.82.247.34 298 | 216.254.141.2 299 | 213.241.193.250 300 | 202.130.97.65 301 | 193.33.236.1 302 | 42.62.176.38 303 | 195.186.4.110 304 | 69.88.0.17 305 | 69.26.129.2 306 | 212.76.68.200 307 | 210.23.129.34 308 | 198.6.1.195 309 | 202.203.192.33 310 | 66.118.80.5 311 | 213.233.161.69 312 | 206.13.31.12 313 | 84.241.98.36 314 | 218.232.110.36 315 | 67.17.215.132 316 | 193.169.32.1 317 | 78.38.253.138 318 | 177.19.48.144 319 | 188.114.194.2 320 | 209.0.205.50 321 | 139.130.4.4 322 | 80.254.79.157 323 | 202.46.1.2 324 | 195.216.64.144 325 | 201.163.145.101 326 | 212.36.24.3 327 | 210.29.96.33 328 | 89.107.210.172 329 | 194.113.160.68 330 | 195.189.130.1 331 | 213.178.66.111 332 | 62.148.228.2 333 | 216.47.160.12 334 | 195.5.125.3 335 | 186.107.119.118 336 | 209.145.150.10 337 | 209.195.95.95 338 | 187.115.53.162 339 | 62.243.190.8 340 | 77.59.224.11 341 | 91.189.0.2 342 | 93.191.32.131 343 | 62.3.32.17 344 | 209.244.0.4 345 | 212.31.253.69 346 | 62.122.184.81 347 | 213.144.108.117 348 | 80.84.72.20 349 | 208.112.89.187 350 | 217.24.112.2 351 | 206.51.143.55 352 | 213.128.194.2 353 | 212.118.241.1 354 | 81.189.212.129 355 | 81.222.80.2 356 | 165.21.83.88 357 | 87.105.250.3 358 | 212.87.29.6 359 | 68.179.203.94 360 | 213.144.3.210 361 | 180.211.129.42 362 | 200.49.160.35 363 | 38.119.98.220 364 | 104.45.88.179 365 | 219.96.224.90 366 | 193.252.247.52 367 | 82.145.163.1 368 | 93.157.14.65 369 | 212.181.124.8 370 | 154.15.245.2 371 | 200.35.174.126 372 | 193.43.17.4 373 | 204.174.120.45 374 | 212.19.128.4 375 | 203.130.2.3 376 | 117.102.224.118 377 | 213.152.142.12 378 | 217.174.252.116 379 | 202.43.176.14 380 | 89.235.9.9 381 | 194.20.0.24 382 | 213.171.220.209 383 | 203.130.2.4 384 | 91.207.164.4 385 | 84.200.69.80 386 | 195.128.252.4 387 | 119.160.208.252 388 | 212.31.32.131 389 | 204.119.0.2 390 | 114.114.114.114 391 | 62.58.3.11 392 | 209.191.129.65 393 | 202.141.224.34 394 | 80.74.253.18 395 | 212.18.15.3 396 | 67.214.64.6 397 | 193.43.108.3 398 | 208.79.56.204 399 | 208.70.22.22 400 | 218.49.29.140 401 | 195.189.72.2 402 | 88.147.158.1 403 | 66.9.182.1 404 | 212.98.160.65 405 | 213.88.151.150 406 | 195.68.193.10 407 | 203.112.2.5 408 | 58.97.113.158 409 | 203.119.36.106 410 | 63.171.232.38 411 | 194.52.202.98 412 | 212.94.162.33 413 | 195.137.189.203 414 | 199.5.47.164 415 | 114.114.115.115 416 | 83.166.8.18 417 | 202.14.67.14 418 | 82.144.181.1 419 | 195.149.104.186 420 | 85.174.190.2 421 | 212.58.111.1 422 | 195.228.254.165 423 | 205.152.37.23 424 | 194.117.245.2 425 | 91.98.110.15 426 | 213.0.77.8 427 | 212.122.224.10 428 | 194.152.241.2 429 | 85.158.50.50 430 | 64.91.92.22 431 | 202.43.178.245 432 | 85.233.82.86 433 | 210.44.112.66 434 | 200.49.160.31 435 | 217.8.180.98 436 | 208.67.222.222 437 | 217.159.0.17 438 | 69.60.160.203 439 | 207.241.160.34 440 | 94.142.161.73 441 | 151.164.1.8 442 | 216.17.128.1 443 | 217.15.17.2 444 | 212.91.184.2 445 | 63.251.161.1 446 | 220.227.60.12 447 | 202.120.111.3 448 | 195.14.50.21 449 | 209.87.64.70 450 | 195.178.60.2 451 | 41.211.233.10 452 | 217.69.160.18 453 | 217.64.163.1 454 | 208.69.84.9 455 | 81.17.66.14 456 | 209.90.160.220 457 | 200.175.3.68 458 | 213.244.72.31 459 | 95.128.246.2 460 | 66.92.64.2 461 | 217.22.209.254 462 | 193.26.6.130 463 | 200.66.96.1 464 | 83.242.140.10 465 | 153.19.1.254 466 | 8.3.48.20 467 | 152.99.78.136 468 | 79.141.81.250 469 | 206.165.6.11 470 | 148.243.65.16 471 | 213.159.193.54 472 | 195.153.19.10 473 | 8.8.4.4 474 | 188.227.48.254 475 | 80.79.179.2 476 | 203.189.89.15 477 | 203.90.78.65 478 | 217.107.10.254 479 | 218.49.29.141 480 | 195.96.208.1 481 | 207.248.224.71 482 | 89.191.149.2 483 | 213.151.109.1 484 | 216.52.126.1 485 | 212.66.129.98 486 | 77.88.8.2 487 | 8.8.8.8 488 | 203.189.89.134 489 | 61.199.193.162 490 | 93.186.161.211 491 | 83.143.8.220 492 | 194.54.66.242 493 | 82.202.131.1 494 | 194.158.206.206 495 | 62.16.86.100 496 | 195.137.162.149 497 | 193.89.221.124 498 | 219.163.55.74 499 | 62.37.228.20 500 | 193.151.93.3 501 | 193.22.119.195 502 | 151.236.29.92 503 | 217.30.49.100 504 | 217.28.113.13 505 | 78.159.224.224 506 | 122.155.12.215 507 | 212.66.1.1 508 | 212.116.76.76 509 | 64.13.115.12 510 | 62.140.239.1 511 | 82.96.193.12 512 | 212.9.64.12 513 | 213.183.57.55 514 | 193.243.128.91 515 | 212.51.17.1 516 | 62.141.38.230 517 | 206.248.95.194 518 | 194.226.211.11 519 | 74.82.46.6 520 | 213.184.16.1 521 | 216.66.80.98 522 | 158.43.192.1 523 | 195.244.25.3 524 | 213.136.40.32 525 | 217.28.98.62 526 | 212.230.255.1 527 | 213.135.67.1 528 | 212.118.0.2 529 | 141.211.125.17 530 | 195.214.240.136 531 | 202.83.20.101 532 | 193.111.34.18 533 | 217.149.155.180 534 | 142.77.2.85 535 | 130.180.228.2 536 | 89.233.250.137 537 | 106.51.255.133 538 | 91.194.211.134 539 | 195.42.215.17 540 | 64.105.199.76 541 | 202.91.8.234 542 | 193.45.139.20 543 | 213.128.216.115 544 | 217.66.226.8 545 | 211.67.112.1 546 | 129.219.17.5 547 | 217.72.1.2 548 | 213.251.133.164 549 | 202.30.143.11 550 | 213.183.65.31 551 | 208.3.14.1 552 | 207.17.190.5 553 | 94.25.63.2 554 | 217.79.225.8 555 | 83.234.220.253 556 | 198.6.1.1 557 | 87.204.12.130 558 | 200.88.127.23 559 | 81.209.202.46 560 | 210.2.4.8 561 | 195.35.110.4 562 | 213.141.72.250 563 | 24.154.1.5 564 | 194.145.147.194 565 | 95.215.150.15 566 | 205.134.162.209 567 | 83.170.64.2 568 | 81.28.128.34 569 | 202.86.8.100 570 | 207.44.226.173 571 | 89.248.162.3 572 | 82.216.111.122 573 | 187.115.52.91 574 | 200.194.67.214 575 | 203.109.129.67 576 | 194.50.10.2 577 | 88.82.105.19 578 | 213.140.34.65 579 | 200.123.192.244 580 | 141.50.161.12 581 | 217.31.160.30 582 | 192.190.173.40 583 | 82.96.81.10 584 | 37.235.1.174 585 | 187.115.52.78 586 | 207.17.190.7 587 | 209.172.128.2 588 | 219.252.48.67 589 | 62.149.132.2 590 | 91.203.188.1 591 | 82.209.190.82 592 | 194.8.53.1 593 | 198.6.1.4 594 | 200.175.3.69 595 | 212.40.5.51 596 | 195.26.96.2 597 | 203.115.81.38 598 | 8.3.48.30 599 | 194.158.206.205 600 | 212.87.132.53 601 | 194.169.244.34 602 | 63.251.129.33 603 | 69.16.169.11 604 | 31.47.189.170 605 | 190.11.32.42 606 | 202.130.97.65 607 | 203.189.88.211 608 | 193.226.61.1 609 | 204.117.214.10 610 | 83.69.77.2 611 | 81.199.3.7 612 | 35.8.2.45 613 | 84.55.62.75 614 | 213.158.72.1 615 | 94.247.200.3 616 | 210.94.0.7 617 | 89.160.27.232 618 | 120.50.44.141 619 | 201.217.16.89 620 | 196.41.225.11 621 | 62.196.2.70 622 | 203.253.64.1 623 | 148.233.151.8 624 | 194.141.44.130 625 | 62.8.96.38 626 | 202.51.96.5 627 | 46.246.94.136 628 | 91.194.178.5 629 | 212.112.39.25 630 | 203.210.142.132 631 | 213.73.14.227 632 | 209.130.136.2 633 | 149.250.222.22 634 | 212.69.161.100 635 | 91.202.12.10 636 | 213.129.120.3 637 | 88.80.64.200 638 | 220.233.0.1 639 | 216.184.96.6 640 | 212.15.128.1 641 | 211.41.128.71 642 | 194.14.0.6 643 | 212.94.34.34 644 | 216.229.0.25 645 | 216.143.135.11 646 | 216.143.135.12 647 | 203.189.89.1 648 | 195.161.115.3 649 | 195.166.192.8 650 | 8.15.12.5 651 | 202.62.124.238 652 | 212.40.5.50 653 | 216.254.95.2 654 | 62.58.3.11 655 | 217.219.236.8 656 | 80.190.248.146 657 | 89.186.66.6 658 | 194.54.128.232 659 | 194.145.240.6 660 | 62.149.33.134 661 | 69.28.148.102 662 | 79.141.83.250 663 | 203.41.44.20 664 | 208.38.1.15 665 | 82.76.253.115 666 | 91.196.8.2 667 | 205.152.144.23 668 | 200.9.115.2 669 | 62.33.47.253 670 | 188.114.193.254 671 | 202.248.0.34 672 | 91.207.40.2 673 | 210.131.113.123 674 | 202.73.36.135 675 | 142.47.133.81 676 | 204.116.57.2 677 | 185.46.7.100 678 | 217.115.16.2 679 | 66.92.159.2 680 | 217.31.204.130 681 | 185.16.40.143 682 | 220.128.173.228 683 | 212.51.17.1 684 | 81.23.144.250 685 | 193.28.97.130 686 | 89.107.16.2 687 | 88.82.84.129 688 | 91.98.132.60 689 | 194.169.239.10 690 | 42.62.178.65 691 | 199.166.6.2 692 | 62.3.32.16 693 | 193.33.200.22 694 | 90.189.109.2 695 | 213.33.82.1 696 | 199.103.16.5 697 | 141.85.128.1 698 | 209.216.160.2 699 | 110.76.151.1 700 | 193.230.161.4 701 | 213.253.137.17 702 | 222.124.249.115 703 | 81.24.128.146 704 | 194.18.231.5 705 | 5.144.19.8 706 | 62.20.17.205 707 | 194.98.65.165 708 | 194.102.106.1 709 | 4.2.2.6 710 | 101.255.64.134 711 | 158.43.128.1 712 | 212.58.3.2 713 | 89.233.43.71 714 | 193.16.209.2 715 | 77.88.8.8 716 | 62.73.100.4 717 | 81.189.214.162 718 | 158.43.128.72 719 | 115.68.100.103 720 | 69.146.17.3 721 | 200.85.39.206 722 | 64.91.92.21 723 | 200.40.230.36 724 | 90.183.74.1 725 | 84.1.240.34 726 | 83.243.39.61 727 | 202.248.20.133 728 | 81.27.135.50 729 | 195.84.194.3 730 | 195.182.110.132 731 | 203.189.88.213 732 | 80.190.200.10 733 | 207.178.128.21 734 | 212.94.162.33 735 | 195.170.97.254 736 | 77.247.176.114 737 | 82.145.160.140 738 | 152.99.1.10 739 | 212.192.128.3 740 | 142.77.2.36 741 | 42.62.176.30 742 | 195.225.36.16 743 | 84.241.100.31 744 | 217.78.80.74 745 | 166.70.25.18 746 | 216.21.129.22 747 | 205.171.2.65 748 | 195.46.48.22 749 | 147.235.250.2 750 | 130.85.1.3 751 | 91.203.177.4 752 | 178.151.86.169 753 | 201.217.19.225 754 | 204.119.0.2 755 | 88.255.242.6 756 | 91.135.110.132 757 | 190.22.34.170 758 | 213.244.5.67 759 | 117.102.224.154 760 | 91.149.108.10 761 | 194.246.127.11 762 | 194.67.74.2 763 | 64.119.60.9 764 | 216.184.96.4 765 | 216.52.169.1 766 | 83.136.56.52 767 | 194.239.164.25 768 | 216.116.96.3 769 | 84.32.80.20 770 | 216.66.38.58 771 | 206.253.194.65 772 | 61.31.1.1 773 | 217.21.96.1 774 | 91.198.154.133 775 | 212.5.218.3 776 | 78.31.96.2 777 | 194.225.128.22 778 | 76.73.18.50 779 | 129.250.35.251 780 | 161.53.128.16 781 | 203.189.88.54 782 | 89.208.10.10 783 | 87.104.254.39 784 | 66.250.192.11 785 | 218.223.32.1 786 | 213.178.66.2 787 | 82.199.102.38 788 | 193.22.110.251 789 | 212.19.149.226 790 | 213.144.108.117 791 | 199.249.18.1 792 | 69.67.97.18 793 | 8.2.208.2 794 | 212.96.130.140 795 | 217.199.217.200 796 | 195.67.127.137 797 | 212.203.33.12 798 | 64.91.3.46 799 | 213.178.0.33 800 | 121.52.87.56 801 | 216.116.96.2 802 | 212.59.199.6 803 | 216.185.192.1 804 | 110.76.151.241 805 | 203.156.104.21 806 | 61.56.211.185 807 | 194.72.9.61 808 | 209.0.205.11 809 | 93.158.117.138 810 | 84.200.70.40 811 | 101.255.64.154 812 | 212.85.112.32 813 | 211.78.130.11 814 | 81.23.144.250 815 | 84.237.112.3 816 | 83.137.193.83 817 | 193.111.200.191 818 | 207.230.202.28 819 | 80.94.48.254 820 | 66.242.160.5 821 | 79.137.227.122 822 | 217.116.53.13 823 | 200.58.161.25 824 | 66.203.72.10 825 | 212.51.16.1 826 | 93.88.151.138 827 | 200.12.63.10 828 | 203.242.200.15 829 | 203.189.88.152 830 | 64.132.61.131 831 | 81.92.96.22 832 | 139.134.5.51 833 | 89.223.7.242 834 | 95.158.129.2 835 | 62.133.163.171 836 | 202.44.55.193 837 | 91.144.248.227 838 | 81.17.72.70 839 | 193.110.157.2 840 | 203.189.88.54 841 | 193.230.161.3 842 | 64.72.224.34 843 | 85.115.224.18 844 | 193.77.33.18 845 | 203.189.88.214 846 | 212.214.82.194 847 | 216.66.80.30 848 | 194.120.55.3 849 | 81.199.48.244 850 | 212.66.1.1 851 | 83.97.97.2 852 | 202.180.64.2 853 | 67.214.159.198 854 | 213.157.0.194 855 | 77.241.24.5 856 | 195.190.17.6 857 | 217.77.176.10 858 | 72.11.150.74 859 | 66.252.170.3 860 | 94.155.91.8 861 | 200.175.3.59 862 | 194.12.224.34 863 | 213.147.64.1 864 | 84.241.98.37 865 | 207.178.128.20 866 | 202.180.64.9 867 | 187.73.241.67 868 | 195.67.15.102 869 | 78.133.155.218 870 | 194.183.88.41 871 | 212.9.160.1 872 | 208.48.253.106 873 | 193.242.114.129 874 | 85.219.142.1 875 | 101.255.64.42 876 | 82.96.86.20 877 | 200.62.64.65 878 | 220.68.64.1 879 | 216.52.254.33 880 | 66.81.0.252 881 | 193.151.32.40 882 | 63.251.62.1 883 | 203.133.1.7 884 | 202.148.202.4 885 | 193.95.93.243 886 | 212.82.226.212 887 | 212.58.3.7 888 | 62.20.57.226 889 | 216.58.97.20 890 | 170.56.58.53 891 | 193.201.185.3 892 | 62.177.42.174 893 | 212.69.161.100 894 | 64.212.106.85 895 | 83.243.39.59 896 | 62.233.128.17 897 | 204.52.135.2 898 | 217.78.80.70 899 | 213.164.38.66 900 | 62.129.252.215 901 | 50.116.23.211 902 | 80.94.32.240 903 | 200.85.35.158 904 | 200.175.3.58 905 | 129.250.35.250 906 | 91.220.187.3 907 | 202.136.162.11 908 | 115.85.69.162 909 | 212.11.191.72 910 | 213.172.33.34 911 | 213.30.253.65 912 | 202.148.202.3 913 | 213.27.209.8 914 | 198.6.1.2 915 | 160.44.1.4 916 | 216.237.221.42 917 | 194.88.202.11 918 | 212.19.96.2 919 | 212.233.128.1 920 | 141.211.144.15 921 | 93.99.200.1 922 | 62.20.76.35 923 | 201.217.17.74 924 | 101.255.64.90 925 | 80.64.32.2 926 | 114.130.11.66 927 | 122.255.96.132 928 | 203.119.8.106 929 | 69.7.192.1 930 | 216.52.129.1 931 | 194.6.216.5 932 | 203.250.129.214 933 | 103.9.124.154 934 | 193.231.80.7 935 | 85.249.45.253 936 | 208.122.23.23 937 | 210.80.58.66 938 | 196.207.15.42 939 | 217.69.169.25 940 | 200.113.185.227 941 | 63.238.52.1 942 | 64.119.80.100 943 | 204.9.123.122 944 | 206.124.64.1 945 | 193.232.65.2 946 | 193.111.238.5 947 | 209.161.175.30 948 | 166.102.165.32 949 | 212.94.32.32 950 | 129.7.1.1 951 | 160.220.137.2 952 | 95.173.193.3 953 | 139.0.27.186 954 | 66.119.93.10 955 | 103.22.248.62 956 | 206.248.79.244 957 | 121.52.87.128 958 | 91.143.20.6 959 | 82.99.211.195 960 | 66.92.224.2 961 | 193.254.232.1 962 | 216.131.95.20 963 | 115.85.69.162 964 | 83.143.154.234 965 | 206.124.1.254 966 | 101.255.64.241 967 | 207.164.234.193 968 | 222.124.8.50 969 | 147.29.37.19 970 | 199.2.252.10 971 | 194.152.248.42 972 | 83.69.77.6 973 | 174.34.129.34 974 | 207.130.95.40 975 | 193.175.51.10 976 | 87.197.40.58 977 | 193.6.10.1 978 | 209.63.0.18 979 | 212.50.131.153 980 | 80.94.52.254 981 | 62.95.15.107 982 | 80.78.162.2 983 | 67.17.215.133 984 | 213.139.190.3 985 | 213.129.120.6 986 | 217.168.144.127 987 | 66.51.206.100 988 | 193.200.68.230 989 | 217.196.1.5 990 | 212.71.98.250 991 | 64.13.48.12 992 | 170.51.255.100 993 | 194.242.50.66 994 | 216.235.1.3 995 | 173.44.32.2 996 | 128.199.248.105 997 | 195.167.98.3 998 | 119.252.20.75 999 | 212.111.28.5 1000 | 217.21.48.1 1001 | 62.91.2.20 1002 | 206.74.254.2 1003 | 81.199.3.7 1004 | 165.87.13.129 1005 | 194.8.53.1 1006 | 64.140.243.112 1007 | 147.235.251.3 1008 | 212.82.225.7 1009 | 187.115.52.83 1010 | 101.255.64.150 1011 | 216.254.141.13 1012 | 213.27.209.53 1013 | 79.141.82.250 1014 | 194.213.193.5 1015 | 148.233.151.6 1016 | 200.85.60.210 1017 | 193.231.236.25 1018 | 62.177.42.174 1019 | 190.11.32.199 1020 | 207.179.3.25 1021 | 202.130.97.66 1022 | 199.101.98.178 1023 | 91.185.2.10 1024 | 217.18.90.105 1025 | 195.182.224.11 1026 | 69.28.97.4 1027 | 209.97.224.3 1028 | 94.124.19.16 1029 | 194.169.235.2 1030 | 87.229.99.1 1031 | 88.80.64.201 1032 | 62.181.119.131 1033 | 147.29.10.55 1034 | 194.73.96.50 1035 | 84.32.80.20 1036 | 216.146.35.230 1037 | 190.146.118.41 1038 | 110.76.151.17 1039 | 58.96.3.34 1040 | 193.16.255.2 1041 | 61.19.252.238 1042 | 208.92.9.21 1043 | 85.88.19.11 1044 | 83.241.175.98 1045 | 203.146.237.237 1046 | 64.91.89.2 1047 | 194.141.12.1 1048 | 194.54.181.90 1049 | 193.41.252.146 1050 | 201.131.4.9 1051 | 62.33.183.254 1052 | 119.160.208.251 1053 | 217.18.80.105 1054 | 202.86.216.1 1055 | 62.109.182.2 1056 | 64.105.189.26 1057 | 72.52.104.74 1058 | 81.92.97.12 1059 | 87.255.68.242 1060 | 134.48.1.32 1061 | 216.218.226.238 1062 | 85.214.132.203 1063 | 62.97.84.4 1064 | 210.220.163.82 1065 | 103.239.165.34 1066 | 213.218.117.85 1067 | 203.248.252.2 1068 | 65.183.98.90 1069 | 168.95.1.1 1070 | 209.213.223.18 1071 | 200.88.127.22 1072 | 217.32.105.66 1073 | 62.20.15.234 1074 | 149.211.153.51 1075 | 193.111.144.145 1076 | 203.89.226.26 1077 | 203.80.96.10 1078 | 193.78.240.12 1079 | 109.69.8.51 1080 | 78.142.133.43 1081 | 212.94.162.1 1082 | 77.240.144.164 1083 | 213.234.128.211 1084 | 91.209.108.17 1085 | 64.207.64.5 1086 | 213.137.73.254 1087 | 205.172.19.79 1088 | 83.219.241.2 1089 | 88.82.105.18 1090 | 209.55.1.220 1091 | 193.58.251.251 1092 | 206.253.33.130 1093 | 141.56.31.3 1094 | 161.53.129.139 1095 | 158.39.46.248 1096 | 122.210.229.161 1097 | 203.253.31.1 1098 | 195.60.70.5 1099 | 202.38.128.58 1100 | 62.134.11.4 1101 | 207.178.128.21 1102 | 195.166.13.4 1103 | 192.43.161.22 1104 | 200.69.193.2 1105 | 203.153.214.14 1106 | 81.24.128.146 1107 | 208.78.24.238 1108 | 211.172.241.54 1109 | 185.46.7.110 1110 | 198.188.2.69 1111 | 66.93.87.2 1112 | 194.33.15.3 1113 | 193.34.129.253 1114 | 91.212.56.5 1115 | 81.90.168.3 1116 | 216.198.139.68 1117 | 193.231.249.1 1118 | 195.70.237.42 1119 | 65.74.130.6 1120 | 91.210.24.22 1121 | 65.163.107.11 1122 | 202.181.224.2 1123 | 195.70.248.1 1124 | 208.122.23.22 1125 | 210.227.119.194 1126 | 79.99.224.24 1127 | 168.243.165.225 1128 | 202.83.30.5 1129 | 212.24.98.98 1130 | 194.176.190.2 1131 | 77.59.224.10 1132 | 80.190.200.55 1133 | 91.135.230.231 1134 | 212.209.194.170 1135 | 65.220.16.14 1136 | 66.207.160.111 1137 | 66.28.0.45 1138 | 216.185.192.2 1139 | 216.54.201.11 1140 | 68.179.203.94 1141 | 216.52.94.1 1142 | 193.33.220.3 1143 | 194.145.198.226 1144 | 212.14.253.242 1145 | 62.108.161.200 1146 | 66.81.1.252 1147 | 217.65.192.1 1148 | 122.155.167.70 1149 | 195.170.96.2 1150 | 198.6.1.146 1151 | 168.213.3.10 1152 | 64.85.177.10 1153 | 66.165.177.69 1154 | 85.94.224.1 1155 | 193.111.144.161 1156 | 64.61.99.2 1157 | 85.235.199.199 1158 | 193.33.174.3 1159 | 149.156.64.210 1160 | 115.68.62.222 1161 | 119.160.208.252 1162 | 216.58.97.21 1163 | 194.158.230.53 1164 | 202.138.120.6 1165 | 218.192.240.2 1166 | 152.99.200.6 1167 | 202.152.162.66 1168 | 173.241.133.178 1169 | 194.132.32.32 1170 | 193.231.238.1 1171 | 195.182.192.10 1172 | 212.66.160.2 1173 | 89.255.99.131 1174 | 212.85.128.2 1175 | 65.74.130.5 1176 | 63.251.62.33 1177 | 200.56.224.11 1178 | 103.3.76.82 1179 | 212.108.200.77 1180 | 194.250.223.1 1181 | 194.172.160.4 1182 | 195.140.236.253 1183 | 209.142.182.250 1184 | 106.186.17.181 1185 | 58.150.55.34 1186 | 103.9.124.154 1187 | 206.123.64.245 1188 | 87.104.254.135 1189 | 64.13.131.34 1190 | 148.243.65.17 1191 | 103.226.55.129 1192 | 81.180.201.99 1193 | 50.21.174.18 1194 | 216.175.203.51 1195 | 66.163.0.161 1196 | 66.146.0.1 1197 | 216.162.32.20 1198 | 89.208.120.10 1199 | 202.43.176.13 1200 | 77.241.25.3 1201 | 212.40.0.10 1202 | 206.53.177.3 1203 | 75.94.255.12 1204 | 93.90.82.50 1205 | 64.187.29.134 1206 | 217.144.144.211 1207 | 195.46.48.21 1208 | 4.2.2.1 1209 | 62.165.33.250 1210 | 212.87.130.92 1211 | 205.151.69.200 1212 | 198.6.1.142 1213 | 66.63.192.2 1214 | 82.198.129.146 1215 | 209.142.152.253 1216 | 103.9.124.90 1217 | 213.211.50.1 1218 | 212.31.32.130 1219 | 64.105.179.138 1220 | 190.248.153.98 1221 | 94.247.200.3 1222 | 206.13.30.12 1223 | 92.42.200.66 1224 | 212.73.65.40 1225 | 64.135.2.250 1226 | 69.28.97.4 1227 | 195.110.17.40 1228 | 158.43.240.3 1229 | 82.96.40.83 1230 | 164.2.255.241 1231 | 206.124.0.254 1232 | 216.52.94.33 1233 | 200.221.11.101 1234 | 216.52.161.33 1235 | 198.100.146.51 1236 | 203.189.88.133 1237 | 193.7.169.9 1238 | 212.118.241.33 1239 | 200.175.0.91 1240 | 164.33.1.4 1241 | 89.160.63.190 1242 | 212.41.4.1 1243 | 198.6.1.122 1244 | 65.39.139.53 1245 | 64.254.99.13 1246 | 64.132.94.250 1247 | 195.182.192.2 1248 | 81.7.200.80 1249 | 202.45.84.59 1250 | 212.118.241.33 1251 | 91.206.72.2 1252 | 206.252.187.110 1253 | 164.124.101.51 1254 | 38.112.17.138 1255 | 195.24.228.3 1256 | 195.221.20.10 1257 | 87.204.28.12 1258 | 217.198.161.1 1259 | 146.185.134.104 1260 | 193.142.115.131 1261 | 203.99.253.1 1262 | 81.18.242.100 1263 | 66.165.164.250 1264 | 103.3.213.210 1265 | 80.67.169.12 1266 | 193.17.213.10 1267 | 159.230.4.130 1268 | 203.189.88.156 1269 | 199.80.64.202 1270 | 212.230.255.129 1271 | 194.102.93.2 1272 | 93.88.148.138 1273 | 201.217.18.178 1274 | 77.109.138.45 1275 | 41.221.5.11 1276 | 203.189.88.212 1277 | 216.66.80.26 1278 | 12.127.16.67 1279 | 202.44.204.63 1280 | 203.189.88.11 1281 | 218.44.242.98 1282 | 85.94.224.2 1283 | 193.231.112.1 1284 | 195.110.16.40 1285 | 77.87.152.9 1286 | 94.155.90.7 1287 | 193.89.248.1 1288 | 207.91.5.32 1289 | 149.6.140.30 1290 | 208.66.232.66 1291 | 91.206.213.2 1292 | 213.157.176.2 1293 | 62.105.17.252 1294 | 213.23.108.129 1295 | 205.162.201.2 1296 | 193.28.100.200 1297 | 203.193.139.150 1298 | 212.102.225.2 1299 | 220.233.0.3 1300 | 217.117.0.38 1301 | 194.6.240.1 1302 | 173.241.133.189 1303 | 193.205.136.1 1304 | 4.2.2.4 1305 | 212.245.158.66 1306 | 193.16.48.66 1307 | 193.201.185.2 1308 | 212.1.118.3 1309 | 82.198.129.138 1310 | 193.239.60.19 1311 | 212.53.34.1 1312 | 209.87.79.232 1313 | 213.88.195.146 1314 | 216.52.41.1 1315 | 78.159.232.232 1316 | 89.255.96.3 1317 | 195.251.119.23 1318 | 82.199.32.36 1319 | 165.166.142.42 1320 | 38.112.17.142 1321 | 62.91.2.20 1322 | 142.46.1.130 1323 | 81.12.49.100 1324 | 4.79.132.219 1325 | 91.197.164.11 1326 | 79.132.192.2 1327 | 203.189.88.11 1328 | 203.115.130.74 1329 | 202.62.224.2 1330 | 217.18.206.12 1331 | 206.124.64.253 1332 | 195.198.214.72 1333 | 69.28.239.8 1334 | 84.32.112.202 1335 | 83.166.8.18 1336 | 195.153.19.5 1337 | 203.189.89.241 1338 | 85.172.0.250 1339 | 77.239.96.2 1340 | 59.12.239.70 1341 | 203.189.89.131 1342 | 212.84.181.99 1343 | 82.96.65.2 1344 | 216.52.190.33 1345 | 202.174.131.19 1346 | 213.157.196.132 1347 | 37.221.170.105 1348 | 190.249.175.122 1349 | 64.79.224.27 1350 | 83.240.154.200 1351 | 216.147.131.34 1352 | 200.85.61.90 1353 | 216.106.184.6 1354 | 204.97.212.10 1355 | 194.146.136.1 1356 | 194.145.198.6 1357 | 81.180.206.137 1358 | 218.102.23.228 1359 | 194.158.230.54 1360 | 85.132.32.41 1361 | 212.28.34.90 1362 | 101.255.64.82 1363 | 67.214.64.27 1364 | 211.172.208.2 1365 | 81.92.226.181 1366 | 210.34.0.18 1367 | 163.152.1.1 1368 | 91.200.113.1 1369 | 195.177.223.3 1370 | 217.170.1.1 1371 | 77.88.8.88 1372 | 62.77.85.98 1373 | 67.100.88.27 1374 | 103.20.188.83 1375 | 198.6.1.6 1376 | 213.172.33.35 1377 | 206.80.254.4 1378 | 193.226.128.129 1379 | 62.108.161.161 1380 | 217.196.1.6 1381 | 66.112.235.200 1382 | 194.105.32.2 1383 | 122.155.13.155 1384 | 83.228.65.52 1385 | 66.118.80.4 1386 | 209.142.136.85 1387 | 74.222.30.2 1388 | 193.34.129.253 1389 | 168.243.165.226 1390 | 164.115.2.132 1391 | 80.80.111.254 1392 | 195.198.127.20 1393 | 188.34.0.4 1394 | 62.119.70.3 1395 | 194.242.50.65 1396 | 195.88.84.100 1397 | 217.65.100.7 1398 | 193.252.247.53 1399 | 82.96.193.10 1400 | 195.234.230.67 1401 | 218.232.110.37 1402 | 213.73.91.35 1403 | 119.18.159.222 1404 | 200.57.7.61 1405 | 64.105.199.74 1406 | 216.81.128.132 1407 | 195.206.96.47 1408 | 213.33.82.2 1409 | 93.188.152.3 1410 | 89.249.224.1 1411 | 195.66.89.4 1412 | 216.138.119.6 1413 | 89.19.193.1 1414 | 200.221.11.100 1415 | 91.188.0.35 1416 | 202.86.216.2 1417 | 199.249.19.2 1418 | 194.25.15.11 1419 | 204.101.45.5 1420 | 217.72.168.34 1421 | 78.47.34.12 1422 | 83.142.192.2 1423 | 193.204.192.2 1424 | 195.128.252.7 1425 | 195.12.4.247 1426 | 61.208.115.242 1427 | 194.187.164.20 1428 | 101.255.64.138 1429 | 91.98.128.112 1430 | 122.155.12.91 1431 | 212.49.128.65 1432 | 42.62.176.150 1433 | 213.88.195.148 1434 | 194.164.181.2 1435 | 193.95.93.77 1436 | 190.186.50.31 1437 | 142.46.128.130 1438 | 69.28.136.102 1439 | 194.113.160.68 1440 | 195.112.96.34 1441 | 203.153.214.26 1442 | 194.45.12.2 1443 | 101.255.64.58 1444 | 194.88.203.6 1445 | 212.5.220.252 1446 | 62.56.230.100 1447 | 194.237.202.250 1448 | 210.34.48.34 1449 | 195.20.193.11 1450 | 213.157.196.131 1451 | 203.198.7.66 1452 | 202.138.120.87 1453 | 62.22.102.5 1454 | 221.139.13.130 1455 | 69.25.1.33 1456 | 195.186.1.110 1457 | 212.233.128.2 1458 | 93.91.224.2 1459 | 80.149.86.20 1460 | 37.235.1.177 1461 | 194.2.0.20 1462 | 195.66.68.2 1463 | 209.68.1.11 1464 | 91.203.188.1 1465 | 216.54.2.11 1466 | 207.91.250.34 1467 | 203.189.89.65 1468 | 203.153.214.14 1469 | 80.88.171.16 1470 | 208.90.237.9 1471 | 216.81.96.67 1472 | 89.107.129.15 1473 | 194.1.148.1 1474 | 209.197.128.2 1475 | 77.246.144.5 1476 | 211.78.130.11 1477 | 192.43.161.22 1478 | 83.243.39.59 1479 | 62.40.32.34 1480 | 195.16.73.1 1481 | 166.70.25.18 1482 | 213.157.0.193 1483 | 62.77.94.72 1484 | 77.41.229.2 1485 | 203.112.2.4 1486 | 62.94.0.41 1487 | 81.21.112.130 1488 | 88.131.89.37 1489 | 62.36.225.150 1490 | 207.248.224.72 1491 | 200.95.144.3 1492 | 62.149.128.2 1493 | 216.218.221.6 1494 | 64.94.33.33 1495 | 101.203.168.123 1496 | 212.58.3.8 1497 | 81.200.5.165 1498 | 212.15.86.12 1499 | 115.68.45.3 1500 | 103.3.46.105 1501 | 216.147.131.33 1502 | 203.124.230.100 1503 | 61.8.0.113 1504 | 195.129.12.114 1505 | 205.236.148.130 1506 | 209.51.161.14 1507 | 12.127.17.72 1508 | 203.189.89.210 1509 | 164.115.2.132 1510 | 209.142.152.254 1511 | 194.102.44.130 1512 | 94.199.201.199 1513 | 217.115.16.3 1514 | 77.109.139.29 1515 | 202.43.160.50 1516 | 90.183.74.2 1517 | 164.124.101.47 1518 | 88.255.96.196 1519 | 203.112.194.243 1520 | 86.59.41.180 1521 | 82.141.136.2 1522 | 194.67.74.3 1523 | 115.68.62.210 1524 | 203.189.89.117 1525 | 91.192.56.2 1526 | 193.102.59.190 1527 | 216.136.95.2 1528 | 89.207.72.138 1529 | 208.196.63.2 1530 | 111.223.252.161 1531 | 193.16.208.114 1532 | 203.2.193.67 1533 | 207.230.192.254 1534 | 160.7.240.20 1535 | 195.22.192.252 1536 | 83.137.41.8 1537 | 194.187.148.1 1538 | 72.11.150.10 1539 | 60.32.112.42 1540 | 216.52.41.33 1541 | 212.54.160.7 1542 | 193.41.10.1 1543 | 202.125.132.154 1544 | 65.107.59.67 1545 | 194.73.96.62 1546 | 203.196.0.6 1547 | 69.28.104.5 1548 | 207.15.68.36 1549 | 66.80.130.18 1550 | 122.155.3.119 1551 | 209.244.0.53 1552 | 212.230.255.129 1553 | 212.41.3.147 1554 | 165.194.1.1 1555 | 216.37.1.19 1556 | 122.155.12.41 1557 | 213.253.136.17 1558 | 80.66.1.42 1559 | 195.186.1.111 1560 | 69.54.70.15 1561 | 198.32.2.10 1562 | 212.38.95.254 1563 | 187.110.170.74 1564 | 217.77.176.11 1565 | 201.131.4.5 1566 | 193.43.108.62 1567 | 211.61.13.227 1568 | 194.116.170.66 1569 | 5.144.12.202 1570 | 194.30.163.5 1571 | 213.178.66.112 1572 | 195.137.246.17 1573 | 78.143.192.20 1574 | 207.164.234.129 1575 | 95.215.149.5 1576 | 94.236.199.8 1577 | 82.209.213.60 1578 | 61.60.224.5 1579 | 94.23.222.19 1580 | 206.253.33.131 1581 | 211.61.13.126 1582 | 202.133.99.11 1583 | 213.253.193.2 1584 | 194.149.156.140 1585 | 193.78.240.12 1586 | 58.68.121.230 1587 | 210.180.98.69 1588 | 216.52.65.1 1589 | 216.27.175.2 1590 | 193.230.230.1 1591 | 211.41.128.70 1592 | 211.78.130.10 1593 | 62.37.225.56 1594 | 62.165.32.250 1595 | 211.161.46.84 1596 | 83.143.12.246 1597 | 220.110.92.202 1598 | 4.2.2.2 1599 | 209.216.160.131 1600 | 193.138.78.117 1601 | 209.143.22.182 1602 | 203.89.226.24 1603 | 217.29.16.250 1604 | 66.182.208.5 1605 | 201.217.51.45 1606 | 217.173.198.3 1607 | 147.29.37.20 1608 | 69.24.112.10 1609 | 88.82.84.129 1610 | 195.243.214.4 1611 | 195.54.152.3 1612 | 193.171.4.60 1613 | 81.20.240.34 1614 | 69.24.112.11 1615 | 93.88.16.66 1616 | 221.186.85.74 1617 | 80.254.77.39 1618 | 193.228.86.5 1619 | 194.25.0.52 1620 | 91.98.234.4 1621 | 89.187.240.60 1622 | 129.219.17.200 1623 | 194.77.8.1 1624 | 62.122.208.68 1625 | 74.84.4.139 1626 | 160.220.137.2 1627 | 203.189.88.151 1628 | 193.231.236.30 1629 | 63.238.52.2 1630 | 87.250.77.204 1631 | 91.98.30.222 1632 | 69.67.97.18 1633 | 168.215.165.186 1634 | 205.152.132.23 1635 | 119.252.20.75 1636 | 208.59.89.20 1637 | 208.54.220.20 1638 | 66.7.160.122 1639 | 61.63.0.66 1640 | 64.94.1.1 1641 | 85.114.105.3 1642 | 146.66.19.238 1643 | 217.77.223.114 1644 | 200.53.250.1 1645 | 66.232.139.10 1646 | 193.86.86.2 1647 | 121.52.206.130 1648 | 216.52.254.1 1649 | 115.68.100.102 1650 | 70.36.0.6 1651 | 212.65.160.43 1652 | 193.42.81.68 1653 | 212.112.39.22 1654 | 87.230.13.136 1655 | 194.126.181.47 1656 | 64.212.106.84 1657 | 193.47.72.17 1658 | 24.248.137.39 1659 | 83.149.244.194 1660 | 91.214.72.33 1661 | 111.223.252.225 1662 | 89.107.210.171 1663 | 141.1.1.1 1664 | 62.33.203.33 1665 | 194.218.25.250 1666 | 80.73.1.1 1667 | 23.226.230.72 1668 | 195.178.123.130 1669 | 165.194.128.1 1670 | 213.128.194.2 1671 | 95.158.128.2 1672 | 212.203.32.11 1673 | 208.71.147.74 1674 | 69.28.239.9 1675 | 210.80.58.3 1676 | 203.77.161.12 1677 | 202.28.162.1 1678 | 62.128.1.42 1679 | 46.163.72.207 1680 | 67.214.159.199 1681 | 202.62.31.18 1682 | 207.248.57.10 1683 | 24.154.1.4 1684 | 65.210.29.34 1685 | 192.76.144.66 1686 | 217.64.167.1 1687 | 14.139.223.100 1688 | 41.221.6.38 1689 | 66.218.245.13 1690 | 192.172.250.8 1691 | 194.44.211.194 1692 | 195.251.123.232 1693 | 213.0.76.5 1694 | 117.102.224.230 1695 | 212.4.96.22 1696 | 89.187.240.59 1697 | 64.135.1.20 1698 | 189.90.16.20 1699 | 201.161.6.46 1700 | 42.62.176.74 1701 | 203.242.200.5 1702 | 64.81.159.2 1703 | 208.67.220.222 1704 | 195.186.4.111 1705 | 80.94.32.240 1706 | 213.8.145.133 1707 | 194.187.100.2 1708 | 212.9.161.2 1709 | 194.126.130.6 1710 | 209.161.175.29 1711 | 66.203.66.203 1712 | 158.43.240.4 1713 | 91.239.100.100 1714 | 202.0.107.125 1715 | 211.78.130.3 1716 | 216.52.97.33 1717 | 212.67.131.4 1718 | 211.175.82.66 1719 | 203.124.230.21 1720 | 80.64.32.2 1721 | 193.230.183.201 1722 | 217.151.0.195 1723 | 208.67.222.220 1724 | 124.107.135.126 1725 | 103.20.188.82 1726 | 61.19.130.42 1727 | 64.119.60.5 1728 | 149.250.222.21 1729 | 195.69.65.98 1730 | 210.104.1.3 1731 | 213.235.248.228 1732 | 194.153.232.17 1733 | 164.124.101.2 1734 | 194.149.146.2 1735 | 83.143.12.249 1736 | 66.119.93.4 1737 | 62.37.225.57 1738 | 217.20.96.100 1739 | 91.211.16.6 1740 | 122.0.0.12 1741 | 64.91.3.60 1742 | 81.25.152.2 1743 | 205.236.148.131 1744 | 142.103.1.1 1745 | 193.178.124.1 1746 | 168.215.210.50 1747 | 80.74.160.11 1748 | 211.237.65.31 1749 | 173.241.133.190 1750 | 219.250.36.130 1751 | 203.189.88.10 1752 | 211.237.65.21 1753 | 216.131.94.5 1754 | 216.52.1.1 1755 | 103.20.184.62 1756 | 83.142.9.30 1757 | 195.145.22.37 1758 | 207.15.68.164 1759 | 200.57.2.108 1760 | 216.52.1.33 1761 | 217.27.240.20 1762 | 216.194.28.33 1763 | 213.241.193.250 1764 | 77.72.17.17 1765 | 220.233.0.4 1766 | 205.172.19.193 1767 | 85.119.72.2 1768 | 217.107.11.35 1769 | 195.114.173.153 1770 | 121.152.231.196 1771 | 194.149.133.11 1772 | 62.29.160.228 1773 | 206.80.254.68 1774 | 216.181.31.11 1775 | 208.86.117.40 1776 | 211.63.64.11 1777 | 202.180.64.9 1778 | 195.66.156.26 1779 | 189.38.95.96 1780 | 62.231.100.14 1781 | 208.48.253.106 1782 | 81.180.201.98 1783 | 219.252.2.100 1784 | 217.14.128.50 1785 | 212.216.172.222 1786 | 195.149.138.3 1787 | 193.58.204.59 1788 | 213.235.248.228 1789 | 213.16.104.61 1790 | 195.27.1.1 1791 | 50.116.28.138 1792 | 211.115.194.2 1793 | 217.144.6.6 1794 | 194.54.148.129 1795 | 212.85.32.3 1796 | 164.124.107.9 1797 | 61.70.87.96 1798 | 203.176.144.20 1799 | 168.213.3.11 1800 | 206.104.144.62 1801 | 85.88.19.10 1802 | 212.59.199.2 1803 | 111.223.252.27 1804 | 194.105.156.2 1805 | 81.90.168.3 1806 | 193.46.84.2 1807 | 207.15.68.36 1808 | 195.146.81.130 1809 | 82.216.111.121 1810 | 151.11.85.5 1811 | 217.20.82.4 1812 | 216.22.81.60 1813 | 62.94.0.42 1814 | 208.116.30.21 1815 | 94.247.200.2 1816 | 203.239.131.1 1817 | 211.115.194.3 1818 | 83.228.65.52 1819 | 193.95.93.77 1820 | 216.106.1.2 1821 | 72.52.104.74 1822 | 212.110.122.132 1823 | 64.105.97.90 1824 | 62.133.163.171 1825 | 204.9.122.102 1826 | 66.165.183.87 1827 | 194.20.8.1 1828 | 193.15.251.65 1829 | 62.128.1.53 1830 | 193.148.29.100 1831 | 212.85.32.2 1832 | 203.124.250.70 1833 | 72.46.0.2 1834 | 209.142.136.220 1835 | 193.148.29.103 1836 | 203.115.71.66 1837 | 217.156.106.1 1838 | 114.114.115.119 1839 | 213.159.0.55 1840 | 212.62.98.10 1841 | 193.7.168.1 1842 | 209.206.136.8 1843 | 217.148.122.40 1844 | 66.9.5.15 1845 | 42.62.176.125 1846 | 193.111.212.5 1847 | 196.29.40.4 1848 | 67.214.64.7 1849 | 63.171.232.39 1850 | 63.105.204.164 1851 | 212.73.209.34 1852 | 88.216.8.69 1853 | 80.78.208.2 1854 | 85.249.40.8 1855 | 203.113.11.37 1856 | 62.233.181.26 1857 | 187.115.53.163 1858 | 193.41.59.151 1859 | 202.62.120.4 1860 | 203.189.88.154 1861 | 139.175.55.244 1862 | 193.34.170.162 1863 | 210.204.251.22 1864 | 85.124.252.33 1865 | 213.158.72.44 1866 | 218.248.240.23 1867 | 89.186.66.7 1868 | 77.72.192.3 1869 | 77.73.104.3 1870 | 193.226.145.2 1871 | 64.56.129.2 1872 | 194.95.141.1 1873 | 77.72.178.77 1874 | 80.92.178.98 1875 | 63.246.63.142 1876 | 64.135.1.22 1877 | 213.211.50.2 1878 | 49.0.124.46 1879 | 213.27.209.55 1880 | 82.115.23.3 1881 | 216.52.65.33 1882 | 87.241.63.4 1883 | 178.254.21.113 1884 | 69.51.76.26 1885 | 195.138.160.3 1886 | 46.246.46.246 1887 | 81.27.133.50 1888 | 61.72.225.1 1889 | 65.203.109.2 1890 | 203.153.41.28 1891 | 194.183.88.40 1892 | 85.132.32.42 1893 | 192.121.170.170 1894 | 209.251.33.2 1895 | 74.207.242.213 1896 | 194.126.159.20 1897 | 193.189.114.254 1898 | 194.250.223.2 1899 | 103.20.188.82 1900 | 89.185.75.244 1901 | 213.133.224.2 1902 | 213.159.0.70 1903 | 190.41.153.24 1904 | 212.214.229.170 1905 | 66.218.44.5 1906 | 195.7.64.3 1907 | 195.18.161.132 1908 | 207.249.163.155 1909 | 203.176.144.12 1910 | 216.244.192.32 1911 | 213.146.65.11 1912 | 83.151.112.193 1913 | 66.92.64.2 1914 | 93.157.233.3 1915 | 77.88.8.1 1916 | 195.67.15.73 1917 | 121.52.87.65 1918 | 194.20.8.4 1919 | 217.20.240.5 1920 | 82.212.67.101 1921 | 203.189.89.210 1922 | 217.24.113.214 1923 | 193.254.22.13 1924 | 62.129.252.252 1925 | 76.10.192.201 1926 | 193.101.111.10 1927 | 62.192.128.60 1928 | 193.43.181.62 1929 | 194.242.50.65 1930 | 64.105.172.26 1931 | 193.109.53.2 1932 | 37.19.5.135 1933 | 94.153.224.74 1934 | 91.199.139.1 1935 | 101.255.64.86 1936 | 165.87.201.244 1937 | 217.159.1.126 1938 | 62.116.30.200 1939 | 195.129.12.83 1940 | 221.151.200.206 1941 | 119.252.167.229 1942 | 168.126.63.1 1943 | 200.85.61.90 1944 | 117.102.224.190 1945 | 195.67.160.3 1946 | 212.73.154.2 1947 | 131.155.140.130 1948 | 216.218.221.6 1949 | 208.38.1.15 1950 | 66.28.0.45 1951 | 212.9.64.11 1952 | 63.251.129.33 1953 | 35.8.98.43 1954 | 221.156.218.31 1955 | 94.155.91.4 1956 | 203.113.25.71 1957 | 211.61.13.227 1958 | 195.13.38.3 1959 | 80.78.66.66 1960 | 193.22.119.22 1961 | 194.42.108.135 1962 | 193.67.79.39 1963 | 62.72.87.4 1964 | 80.93.177.182 1965 | 206.13.28.12 1966 | 8.5.244.5 1967 | 209.183.52.21 1968 | 35.8.2.42 1969 | 81.18.97.50 1970 | 178.212.102.76 1971 | 213.239.204.35 1972 | 212.98.160.50 1973 | 194.126.130.7 1974 | 200.123.192.251 1975 | 87.103.133.167 1976 | 196.2.45.101 1977 | 212.24.97.97 1978 | 173.241.133.172 1979 | 212.211.132.4 1980 | 85.119.74.2 1981 | 101.255.64.210 1982 | 64.91.92.21 1983 | 85.119.136.158 1984 | 212.96.128.140 1985 | 207.230.202.29 1986 | 193.2.64.45 1987 | 187.115.52.142 1988 | 137.82.1.1 1989 | 101.255.64.34 1990 | 194.1.185.122 1991 | 194.179.109.10 1992 | 217.28.96.190 1993 | 217.17.34.68 1994 | 87.106.220.85 1995 | 12.173.168.201 1996 | 217.198.160.130 1997 | 194.179.1.100 1998 | 89.140.186.3 1999 | 195.99.66.220 2000 | 165.21.100.88 2001 | 149.211.153.50 2002 | 81.189.121.68 2003 | 209.142.152.253 2004 | 195.2.195.1 2005 | 203.229.169.1 2006 | 66.28.0.61 2007 | 69.16.170.11 2008 | 81.95.128.218 2009 | 209.143.0.10 2010 | 193.27.192.98 2011 | 194.75.147.212 2012 | 217.148.0.17 2013 | 81.196.170.20 2014 | 168.188.1.1 2015 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | gevent 2 | dnspython 3 | requests 4 | progressbar2 5 | --------------------------------------------------------------------------------