Fyra sätt att göra DNS-frågor i Python

Det finns ett antal moduler som är mer eller mindre användbara för att göra DNS-frågor med. Några av dessa redovisas här:

1. adns

adns är ett gammalt och välkänt supersnabbt C-bibliotek och står för ”GNU asynchronous DNS resolver library” och nu finns det även till Python och fungerar enligt följande:

import adns

c=adns.init()

Och sedan för att ställa en fråga om vad www.google.com har för IP:

c.synchronous("www.google.com", adns.rr.A)

(0, 'www.l.google.com', 1167604334, ('216.239.37.99', '216.239.37.104'))

2. dnslook

Baseras på D. J. Bernstein’s djbdns paket och används enligt följande:

import dnslook

dnslook.ip4("cr.yp.to")('131.193.178.181',)
('131.193.178.181',)

3. PyDNS

Eventuellt nedlagt?

4. dnspython

dnspython är den modul som jag använder i dagsläget och verkar vara kontinuerligt underhållen:

dnspython is a DNS toolkit for Python. It supports almost all record types. It can be used for queries, zone transfers, and dynamic updates. It supports TSIG authenticated messages and EDNS0.

Används enligt följande:

import dns.resolver>>> answers = dns.resolver.query("www.google.com", dns.rdatatype.A)

for rdata in answers:

print rdata

216.239.59.147

216.239.59.99

216.239.59.103

216.239.59.104

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *