Retrieving Dns Records Using Python

You can retrieve DNS records using dnspython package. You can install the package using pip install dnspython.

Gist can be found at

The problem with this package is that you cannot retrieve all the records at a time so a quick and dirty alternative is to put them in for loop. Few record names in this list (ids) raise an exception, for example ANY, this is because there is no DNS record called ANY.

Things to know

  1. List of DNS records
  2. dnspython docs

    #!/usr/bin/env python
    # -*- coding utf-8 -*-
    # Copyright 2016 Akshay Raj Gollahalli
    import dns.resolver
    def get_records(domain):
    Get all the records associated to domain parameter.
    :param domain:
    ids = [
    for a in ids:
            answers = dns.resolver.query(domain, a)
            for rdata in answers:
                print(a, ':', rdata.to_text())
        except Exception as e:
            print(e)  # or pass
    if __name__ == '__main__':
Copyright © Akshay Raj Gollahalli's logo 2019