在Python中,你可以使用多种方法来检查网络连通性。以下是几种常见的方法:
方法一:使用 `os.system` 执行 `ping` 命令
import os
def is_pingable(ip):
response = os.system(f"ping -c 1 {ip}") 执行ping命令
return response == 0 返回0表示连通,非0表示不连通
ip = "www.google.com"
if is_pingable(ip):
print("网络连通")
else:
print("网络不连通")
方法二:使用 `urllib.request` 库
import urllib.request
def test_internet_connection():
url = "https://www.baidu.com"
try:
urllib.request.urlopen(url, timeout=5)
print("网络连接正常")
except urllib.error.URLError as ex:
print("网络连接异常:", str(ex))
test_internet_connection()
方法三:使用 `requests` 库
import requests
def isConnected():
try:
html = requests.get("https://www.baidu.com", timeout=5)
print("网络正常")
return 1
except:
print("网络异常")
return 0
Flag = isConnected()
print(Flag)
方法四:使用 `socket` 库
import socket
def check_internet_connection():
try:
创建一个socket对象
socket.create_connection(("www.baidu.com", 80))
return True
except OSError:
return False
if check_internet_connection():
print("网络连接正常")
else:
print("无法连接到网络")
方法五:使用 `subprocess` 库
import subprocess
def test_network_connection():
try:
执行ping命令
output = subprocess.check_output("ping www.baidu.com -n 1", shell=True, stderr=subprocess.STDOUT)
if "1 received" in output.decode('utf-8'):
return True
else:
return False
except subprocess.CalledProcessError:
return False
if test_network_connection():
print("网络连通")
else:
print("网络不连通")
以上方法都可以用来检测网络连通性。你可以选择最适合你需求的方法进行尝试。需要注意的是,这些方法可能需要相应的库支持,如 `requests` 库需要先通过 `pip install requests` 安装。