MicroPython: 测试当前是否为真实的联网状态
(使用DNS查询www.baidu.com,如果有返回则当前为真联网状态)
#测试当前真实联网状态(此处return 1 为联网,return 0 为失败)
def check_online():
#设置每次测试超时时间
delay_seconds=1
import socket
for count in range(10):
try:
ip = socket.getaddrinfo('www.baidu.com', 80)
# 如果没有抛出异常,说明网络可用
print("网络可用。(成功解析www.baidu.com为", ip, ")")
return 1
except OSError:
# 如果发生OSError异常,说明当前网络不可用
print("网络测试:当前网络不可用,正在重新测试第", count + 1, "次")
time.sleep(delay_seconds)
# 如果10次重试都失败了,打印最终的失败消息
print("网络测试:当前网络不可用,已超出重试次数")
return 0