用Python代码进行网络速度监控和记录初探

2023-10-21 05:40:06 浏览数 (2)

这是一个简单的Python示例代码,用于监控局域网内计算机的网络速度。这个示例使用psutil库来获取网络速度信息,并每隔一定时间打印出上传和下载速度。

首先,确保你已经安装了psutil库,如果没有安装,可以使用以下命令安装它:

代码语言:javascript复制
pip install psutil

然后,可以使用以下Python代码进行网络速度监控:

代码语言:javascript复制
import psutil
import time

def get_network_speed(interval=1):
    while True:
        net_info = psutil.net_io_counters(pernic=True)
        for interface, data in net_info.items():
            if interface != 'lo':  # 排除回环接口
                download_speed = data.bytes_recv / interval / 1024  # 下载速度(KB/s)
                upload_speed = data.bytes_sent / interval / 1024  # 上传速度(KB/s)
                print(f"接口: {interface}, 下载速度: {download_speed:.2f} KB/s, 上传速度: {upload_speed:.2f} KB/s")
        
        time.sleep(interval)

if __name__ == "__main":
    get_network_speed()

上面这个示例代码将每个网络接口的下载和上传速度打印出来,以KB/s为单位。你可以调整interval变量来设置打印速度信息的时间间隔,单位是秒。

更进一步,以下是一个简单的Python示例代码,用于使用HTTP POST方法将速度测试网络速度监控结果上传到服务器:

代码语言:javascript复制
import requests

# URL 是服务器的接收数据的端点
url = "https://www.os-monitor.com/"

# 测试结果数据
download_speed = 50.0  # 下载速度(Mbps)
upload_speed = 20.0  # 上传速度(Mbps)

# 将数据组织为JSON
data = {
    "download_speed": download_speed,
    "upload_speed": upload_speed
}

# 发送POST请求
response = requests.post(url, json=data)

# 检查响应
if response.status_code == 200:
    print("数据上传成功")
else:
    print("数据上传失败")

在这个示例中,尝试使用requests库发送一个HTTP POST请求到目标网站,将测试结果数据作为JSON发送到服务器的指定URL。实际中需要替换url和数据字段,以适应数据接收网站的要求。

0 人点赞