/
bench.py
49 lines (43 loc) · 1.35 KB
/
bench.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import dns.resolver
DNS_SERVERS = {
"Google-1": "8.8.8.8",
"Google-2": "8.8.4.4",
"opendns-1": "208.67.222.222",
"opendns-2": "208.67.220.220",
"CloudFlare-1": "1.1.1.1",
"Cloudflare-2": "1.0.0.1",
"Quad9-1": "9.9.9.9",
"Quad9-2": "149.112.112.112",
"Softlayer": "169.38.73.5",
"Reliance-India-1": "202.138.120.86",
"Reliance-India-2": "202.138.120.4",
"Reliance-India-3": "202.138.120.6",
"artech": "202.86.251.201",
"SignNet": "115.42.228.246",
"Mobile1-Singapore-1": "118.189.211.221",
"Default Server": None,
}
def query_dns(domain):
responses = []
for name, server in DNS_SERVERS.items():
my_resolver = dns.resolver.Resolver(configure=False)
if server:
my_resolver.nameservers = [
server,
]
try:
resp = my_resolver.resolve(domain, "A")
timing = resp.response.time * 1000
print(f"Processed : {name}")
responses.append(
(
name,
timing,
)
)
except Exception as e:
print(name, ":failed" + str(e))
responses = sorted(responses, key=lambda x: x[1])
for i in range(0, 3):
print(f"Best option {i+1}: {responses[i][0]} ({responses[i][1]:.2f} msecs)")
query_dns("www.vivekv.info")