2012-01-08 15 views
3

私はgethostbyname DNSとIPアドレスのチェック機能を使用しています。しかし、それはこの場合にはうまく動作しません:socket.gethostbynameはうまく動作しません

>>> from socket import gethostbyname 
>>> gethostbyname('lns.sa') 
'67.215.65.132' 
>>> gethostbyname('lns.sa') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
socket.gaierror: [Errno -2] Name or service not known 
>>> gethostbyname('lns.sa') 
'67.215.65.132' 
>>> gethostbyname('lns.sa') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
socket.gaierror: [Errno -2] Name or service not known 
>>> gethostbyname('lns.sa') 
'67.215.65.132' 
>>> gethostbyname('lns.sa') 
'67.215.65.132' 
>>> gethostbyname('lns.sa') 
'67.215.65.132' 
>>> gethostbyname('lns.sa') 
'67.215.65.132' 
>>> gethostbyname('lns.sa') 
'67.215.65.132' 
>>> gethostbyname('lns.sa') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
socket.gaierror: [Errno -2] Name or service not known 
>>> 

それはOpenDNSのにbelonge一度、2つの切り抜いた答えを与え、他はName or service not known、正しいものです。数秒後、正常に動作します。誰かがこの動作を説明でき、gethostbynameは信頼できるでしょうか?

答えて

1

gethostbyname()に何も問題はありません - ドメインlns.saは本当に存在しません。

アドレス67.215.65.132は、存在しないドメインに対してOpenDNSが提供するものです。それは名前ですhit-nxdomain.opendns.com.

ほとんどの場合、1つのOpenDNSサーバーが構成されており、他の1つはOpenSSLサーバーです。 OpenDNSは「見つからない」ドメインを書き直しており、他のプロバイダはそうではありません。

関連する問題