【发布时间】:2012-07-22 17:12:53
【问题描述】:
我正在尝试编写一个脚本来检查域名是否通过 dns 解析为其 IP 地址;使用我编写的python脚本。
我希望能够在几个顺序循环中执行此操作,但是在尝试运行一次循环后,我第二次运行脚本时,以前返回成功的 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 名称是否解析,并且能够运行它而不会误读“请求失败”,尽管是否可以从浏览器完全访问该服务?
【问题讨论】:
-
我看不出这段代码有任何问题,而且它对我来说很好用。可能是您的网络设置有问题或类似情况?
-
所以它运行良好,在后续运行中没有负面响应?
-
我不断收到“无法解决”所有问题,尝试在 linux 和 winXP 上进行测试(使用 IDLE)。
-
您可以尝试从命令行而不是在 IDLE 中运行脚本吗?
-
这肯定是您运行它的机器上的 dns 配置有问题。我将相同的代码粘贴到 Windows 7 上的 IDLE、python2.7 中,并且所有 4 个地址都已解析。考虑在superuser.com 上寻求帮助
标签: python web request dns resolve