MicroPython: 测试当前联网状态(DNS测试法)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值