python检测网络连接状态的四种方法

本文探讨了四种Python方法:socket、urllib3、os及subprocess,用于检查网络连接。第一种仅适用于动态IP;第二种通过HTTP请求验证;第三种利用ping命令;第四种结合子进程。对比其适用场景和局限性。
Python3.8

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

第一种



import socket

ipaddress = socket.gethostbyname(socket.gethostname())

if ipaddress == '127.0.0.1':
    return False
else:
    return True

缺点:如果IP是静态配置,无法使用,因为就算断网,返回的也是配置的静态IP

第二种

import urllib3

try:
    http = urllib3.PoolManager()
    http.request('GET', 'https://baidu.com')
    return True
except as e:
    return False

第三种

import os

ret = os.system("ping baidu.com -n 1")
return True if res == 0 else False

第四种

import subprocess
import os


ret = subprocess.run("ping baidu.com -n 1", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
return True if ret.returncode == 200 else False

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值