之前写了篇关于socket.gaierror: [Errno -2] Name or service not known报错的解决方案链接如下:
https://blog.csdn.net/Kurakipeaf/article/details/138564020
但是今天发现还是会出现解析超时的情况
看来问题不是在变量名称
于是转变下思路,一次解析不成功多解析几次:
domain_name = 'baidu.com'
ip_address = None
max_retries = 5
retries = 0
#解析主机IP,直到将解析成功
while not ip_address and retries < max_retries:
try:
ip_address = socket.gethostbyname(domain_name)
break
except socket.gaierror as e:
# 处理 socket.gaierror 异常,继续重试
print("Socket Error:", str(e))
retries += 1
continue
这样代码运行到这一步,如果解析不成功ip_address变量没有赋值会重新解析,如果重新解析5次还是不成功会返回异常报错(应该不会有解析5次还超时的情况吧)