python:检查主机名是否已解析

时间:2012-07-23 18:16:06

标签: python hostname

如何在python中有一个函数,如果一个主机名解析则返回1,如果一个主机名没有则返回0。

我找不到有用的东西,有什么想法吗?

谢谢,

1 个答案:

答案 0 :(得分:44)

您可以使用socket.gethostbyname()

>>> 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

您的功能可能如下所示:

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

示例:

>>> hostname_resolves('google.com')
1
>>> hostname_resolves('foo')
0