DNS query against a specific server.
Michel Albert
exhuma at gmail.com
Mon Sep 30 08:45:34 EDT 2013
On Monday, 30 September 2013 14:36:34 UTC+2, William Ray Wing wrote:
> On Sep 30, 2013, at 7:42 AM, 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.
>
> >
>
> >
>
> > Cheers,
>
> > Mich.
>
> > --
>
> > https://mail.python.org/mailman/listinfo/python-list
>
>
>
> It isn't pure python, but you would be pretty much guaranteed a maintained solution if you use the name server lookup in your OS. Something like:
>
>
>
> import subprocess
>
> nsl_reslt = subprocess.Popen(['nslookup', '<insert name nere>' ],stderr = subprocess.PIPE, stdout = subprocess.PIPE).communicate()[0]
>
>
>
>
>
> Hope this helps,
>
> Bill
Hmm... I had this option in mind, but opening a subprocess for something as small as this seemed a bit error-prone. If something on the system changes, nslookup replaced by dig or nslookup output changes for example your application will bug out.
Granted, the chance of this happening is slim, but using a fixed-version dependency in your setup script gives you a much safer solution IMO.
I know I may be splitting hairs. Any of the mentioned solutions are fine. But I am curious to see if something like this is not yet implemented in a more standard way. I was surprised to see that ``gethostbyname`` does not take an optional parameter for this task.
More information about the Python-list
mailing list