这个功能一直让我失望,我这样做了吗?还有另一种从IP地址获取域名的方法吗?
def ip_to_domain(ip):
for i in range(0,4):
try:
domain = socket.gethostbyaddr(str(ip))
return domain
except IOError:
continue
else:
break
else:
return False
感谢您提供任何建议。
答案 0 :(得分:0)
您还需要陷阱socket.herror
...使用类似的内容并检查相关字段中是否显示无值...
import socket
def lookup(addr):
"""
Example usage:
name, alias, addresslist = lookup('4.2.2.2')
"""
try:
return socket.gethostbyaddr(addr)
except socket.herror:
return None, None, None
如果您想自动查找失败,请执行以下操作......
import socket
import time
def relookup(addr):
"""
Example usage:
name, alias, addresslist = relookup('4.2.2.2')
"""
attempts = 1
while (attempts <= 3):
try:
return socket.gethostbyaddr(addr)
except IOError, socket.herror:
time.sleep(5)
attempts += 1
return None, None, None