📅  最后修改于: 2023-12-03 15:19:10.828000             🧑  作者: Mango
在编写 Python 程序时,有时需要检测当前计算机是否能够访问互联网。本文将介绍如何使用 Python 检测互联网连接。
Python 中的 requests 模块可以用于向指定的 URL 发送 HTTP 请求。我们可以通过发送请求来检测当前计算机是否能够连接互联网。下面是一个简单的示例代码:
import requests
try:
response = requests.get('http://www.baidu.com')
if response.status_code == 200:
print('Internet connection is OK')
else:
print('Internet connection is not OK')
except:
print('Internet connection is not OK')
在这个示例中,我们向百度的主页发送了一个 GET 请求。如果返回的状态码为 200,则说明当前计算机可以连接互联网。
除了 requests 模块外,Python 内置的 socket 模块也可以用于检测互联网连接。我们可以尝试向百度的主机发送一个 ICMP 报文(Ping)来检测连接状态。下面是一个示例代码:
import socket
def internet_on():
try:
socket.gethostbyname('www.baidu.com')
return True
except socket.error:
return False
if internet_on():
print('Internet connection is OK')
else:
print('Internet connection is not OK')
在这个示例中,我们使用 gethostbyname() 函数向百度的主机名(www.baidu.com)解析出对应的IP地址。如果能够成功解析,则说明当前计算机可以连接互联网。
Python 内置的 urllib 模块也提供了一些方法用于检测互联网连接。下面是一个示例代码:
import urllib.request
def internet_on():
try:
urllib.request.urlopen('http://www.baidu.com', timeout=1)
return True
except urllib.request.URLError as err:
return False
if internet_on():
print('Internet connection is OK')
else:
print('Internet connection is not OK')
在这个示例中,我们使用 urlopen() 函数向百度的主页发送了一个 HTTP 请求。如果能够成功获取到页面,则说明当前计算机可以连接互联网。
以上就是 Python 检测互联网连接的三种方法。无论使用哪种方法,都需要注意异常处理,以保证程序的健壮性。