You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python计算当前实时互联网连接速度

操作系统当前实际网络连接速度获取方案

你提到的speedtest-cli这类工具测的是最大可用带宽,和当前时刻系统实际正在使用的网络传输速率不是同一个指标,后者可以通过直接读取系统网络接口的统计数据计算得到,不需要额外下载测试文件。

跨平台Python实现方案(推荐用于自研程序开发)

可以用psutil模块,它能直接读取各操作系统底层的网络接口统计数据,通过两次采样的差值计算时间窗口内的实际上下行速率,代码示例如下:

import psutil
import time

def get_current_network_speed(interval=1):
    # 获取初始网络字节统计
    initial_net_io = psutil.net_io_counters()
    initial_bytes_sent = initial_net_io.bytes_sent
    initial_bytes_recv = initial_net_io.bytes_recv
    
    # 等待指定时间间隔
    time.sleep(interval)
    
    # 获取二次采样统计
    final_net_io = psutil.net_io_counters()
    final_bytes_sent = final_net_io.bytes_sent
    final_bytes_recv = final_net_io.bytes_recv
    
    # 计算速率 单位转换为Mbps
    upload_speed = (final_bytes_sent - initial_bytes_sent) * 8 / (1024 * 1024 * interval)
    download_speed = (final_bytes_recv - initial_bytes_recv) * 8 / (1024 * 1024 * interval)
    
    return round(upload_speed, 2), round(download_speed, 2)

# 调用示例:获取1秒窗口内的实际网络速率
up, down = get_current_network_speed()
print(f"当前上行速率: {up} Mbps, 当前下行速率: {down} Mbps")
  • 上述代码返回的是interval时间窗口内的系统平均实际传输速率,完全不需要访问外部服务器或下载测试文件,采集的就是系统当前真实的网络使用速度
  • 如果需要指定单个网卡的速率,可以将psutil.net_io_counters()替换为psutil.net_io_counters(pernic=True)[网卡名称]即可
  • 依赖安装命令:pip install psutil

各系统原生命令获取方式(无需代码嵌入时使用)

  • Windows:可以直接在命令行执行netstat -e,间隔执行两次计算差值即可得到实际传输量,也可以用性能计数器的\Network Interface(*)\Bytes Total/sec指标
  • Linux:执行cat /proc/net/dev读取网卡统计,或使用iftop、nload命令直接查看实时速率
  • macOS:执行netstat -ib读取网卡统计,或使用活动监视器的网络标签页查看实时速率

内容的提问来源于stack exchange,提问作者Amir Mohammad Fallah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 02:42:01