Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

python: check if a hostname is resolved

How can I have a function in python that returns 1 if the a hostname resolves and 0 if a hostname does not.

I couldn't find anything useful, any thoughts?

Thanks,

like image 823
Amir Avatar asked Jul 23 '12 18:07

Amir


1 Answers

You can use socket.gethostbyname() for this:

>>> import socket >>> socket.gethostbyname('google.com') '74.125.224.198' >>> socket.gethostbyname('foo')           # no host 'foo' exists on the network Traceback (most recent call last):   File "<stdin>", line 1, in <module> socket.gaierror: [Errno 8] nodename nor servname provided, or not known 

Your function might look like this:

def hostname_resolves(hostname):     try:         socket.gethostbyname(hostname)         return 1     except socket.error:         return 0 

Example:

>>> hostname_resolves('google.com') 1 >>> hostname_resolves('foo') 0 
like image 140
Andrew Clark Avatar answered Oct 02 '22 22:10

Andrew Clark