ドメイン名がDNS経由でそのIPアドレスに解決されるかどうかを確認するスクリプトを考え出そうとしています。私が書いたPythonスクリプトを使用します。
いくつかの順次ループでこれを実行できるようにしたいのですが、ループを1回実行しようとした後、2回目にスクリプトを実行すると、以前はDNS解決応答が成功した名前が返されませんでした。
以下は私のスクリプトです:
#! C:\Python27
import socket,time
localtime = time.asctime( time.localtime(time.time()) )
def hostres(hostname):
print "Attempting to resolve " + hostname
try:
socket.gethostbyname(hostname)
print "Resolved Successfully!"
except socket.error:
print "Could Not Resolve"
print "*************************************************"
print "Website loop starting.."
print "Local current time :", localtime
print "*************************************************"
print ""
text_file = open("sites.txt", "r")
lines = text_file.readlines()
for line in lines:
hostres(line)
text_file.close()
テキストファイルの内容は次のとおりです。
www.google.com
en.wikipedia.org
www.youtube.com
us.gamespot.com
これらのドメインサーバーがスクリプトを正当なエンドユーザーではなく「ボット」として認識することと関係があると思いますが、これを想定するのは正しいでしょうか。
もしそうなら、ウェブサイトの名前(またはIPは関係ありません)を検索してDNS名が解決するかどうかを確認し、「リクエストが失敗しました」という誤った読み取りを取得せずにこれを実行できるようにするにはどうすればよいですか?サービスはブラウザから完全にアクセスできますか?