3

gethostbynameDNSとIPアドレスのチェックに関数を使用しています。ただし、次の場合はうまく機能しません。

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

2 つの異なる回答が返されます。1 つは OpenDNS に属し、もうName or service not known1 つは正しい回答です。数秒後、正常に動作します。誰かがこの動作を説明でき、gethostbyname信頼して使用できますか?

4

1 に答える 1

1

まったく問題はありません。gethostbyname()ドメインlns.saは実際には存在しません。

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

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

于 2012-01-08T15:52:31.737 に答える