DNS query against a specific server.
Michel Albert
exhuma at gmail.com
Mon Sep 30 09:04:31 EDT 2013
On Monday, 30 September 2013 14:54:41 UTC+2, Ervin Hegedüs wrote:
> Hello,
>
>
>
> On Mon, Sep 30, 2013 at 04:42:29AM -0700, Michel Albert wrote:
>
> > Hi,
>
> >
>
> > ``socket.gethostbyname`` sends the DNS resolution query to the DNS server specified by the OS. Is there an easy way to send a query to a *different* server?
>
> >
>
> > I see that twisted.names allows you to do this, but, having all of twisted as dependency to my project when all I need to do is a simple DNS query seems a bit extreme. I also found pydns, but that looks fairly outdated and unmaintained.
>
> >
>
> > Is there not an actively maintained lightweight solution? If not, I will go with twisted.
>
> >
>
>
>
> there is a dns modul for Python (I don't know is it part of
>
> standard Python library or not), on most Linux distribution you
>
> can find it, eg. in Debian it's called python-dnspython.
>
>
>
> It can handle different nameserver, than OS knows - here is a
>
> sample code:
>
>
>
>
>
> import dns.resolver
>
>
>
> r = dns.resolver.Resolver()
>
> r.namerservers = ['127.0.0.1']
>
> # or any other IP, in my case I'm using PDNS, which have two
>
> # parts: a recursor and a resolver; recursor allows requests only
>
> # on localhost
>
>
>
> mxservers = r.query("python.org", 'MX').response
>
>
>
>
>
>
>
>
>
> hth,
>
>
>
>
>
> a.
Indeed, this looks much nicer than both twisted or pydns. I think I'll go with that one. Thanks a lot!
More information about the Python-list
mailing list