top of page

Create your own DNS response time tool in Python

I can’t count the number of times I wish I had a tool that just …….

Many times, the tool exists, but part of a network management suite or solution which is not practical to install and configure for a simple test or the odd troubleshooting task.

In this video I will show you a small piece of code that I wrote to record DNS response time.

Here is the code below for you to simply cut and paste. Unfortunately, I could not post the py file..

import csv

import datetime

import time

import dns.resolver

# DNS name to resolve

domain_name = ""

# Number of times to measure DNS response time

num_measurements = 100

counter = 0

delay = 1

print("Tonys DNS response time utility")

print("Performing name lookups for", domain_name, num_measurements, "times with a ", delay, "second delay")

# Create CSV file and write header row

with open('dns_response_times.csv', mode='w') as csv_file:

fieldnames = ['Date', 'Response Time (ms)']

writer = csv.DictWriter(csv_file, fieldnames=fieldnames)


# Measure DNS response time multiple times and write results to CSV file

for i in range(num_measurements):

counter = counter+1

start_time = time.time()

# Perform DNS resolution

resolver = dns.resolver.Resolver()

resolver.nameservers = [''] # Google DNS server

answer = dns.resolver.resolve(domain_name)

end_time = time.time()

response_time_ms = (end_time - start_time) * 1000

# Write result to CSV file

writer.writerow({'Date':"%Y-%m-%d %H:%M:%S"), 'Response Time (ms)': response_time_ms})

print("Testing", domain_name, "#", counter,response_time_ms,"ms")



Recent Posts

See All


bottom of page