python: comprueba si un nombre de host está resuelto
hostname (1)
¿Cómo puedo tener una función en python que devuelve 1 si el nombre de host se resuelve y 0 si no lo hace un hostname?
No pude encontrar nada útil, algún pensamiento?
Gracias,
Puedes usar socket.gethostbyname()
para esto:
>>> 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
Su función podría verse así:
def hostname_resolves(hostname):
try:
socket.gethostbyname(hostname)
return 1
except socket.error:
return 0
Ejemplo:
>>> hostname_resolves(''google.com'')
1
>>> hostname_resolves(''foo'')
0