📜  python 检测互联网连接 - Python (1)

📅  最后修改于: 2023-12-03 15:19:10.828000             🧑  作者: Mango

Python 检测互联网连接

在编写 Python 程序时,有时需要检测当前计算机是否能够访问互联网。本文将介绍如何使用 Python 检测互联网连接。

方法一:使用 requests 模块

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,则说明当前计算机可以连接互联网。

方法二:使用 socket 模块

除了 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地址。如果能够成功解析,则说明当前计算机可以连接互联网。

方法三:使用 urllib 模块

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 检测互联网连接的三种方法。无论使用哪种方法,都需要注意异常处理,以保证程序的健壮性。