对于python和一般的编程,我是一个完整的新手。在过去的几周里,我一直在研究一个小小的webapp,试图改进我的编码排序。几天前我的笔记本电脑被偷了所以我出去买了一台新的MacBook Pro。感谢上帝我在颠覆控制下拥有一切。问题是,我在我的新机器上运行的脚本已经停止工作,我不知道为什么。
这实际上是我写作的唯一部分,我为现有脚本大量借用。它来自广泛使用的whois.py脚本,我只是稍微修改了它如下(见下文)。它在我的旧系统上运行正常(运行ubuntu),但现在正在引发socket.error。我完全迷失了,非常感谢任何帮助。谢谢!
def is_available(domainname, whoisserver="whois.verisign-grs.com", cache=0):
if whoisserver is None:
whoisserver = "whois.networksolutions.com"
s = None
while s == None:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setblocking(0)
try:
s.connect((whoisserver, 43))
except socket.error, (ecode, reason):
if ecode in (115, 150): pass
else:
raise socket.error, (ecode, reason)
ret = select.select([s], [s], [], 30)
if len(ret[1])== 0 and len(ret[0]) == 0:
s.close()
raise TimedOut, "on connect "
s.setblocking(1)
except socket.error, (ecode, reason):
print ecode, reason
time.sleep(1)
s = None
s.send("%s \n\n" % domainname)
page = ""
while 1:
data = s.recv(8196)
if not data: break
page = page + data
s.close()
答案 0 :(得分:0)
对我来说很好,虽然它永远不会返回任何东西。 (Linux 2.6.32)