在企业或家庭环境中,监控网络设备是否在线是常见需求。本文将演示如何使用 Python 快速实现本地网络设备状态检测,并输出结果到终端或保存到文件,操作简单,适合初学者实践。
一、准备工作
- 安装 Python(推荐 Python 3.10 及以上)
- 安装需要的第三方库:
pip install pythonping tabulate
- pythonping:实现网络 ping 功能
- tabulate:美化输出表格
二、编写脚本
新建文件 network_monitor.py,输入以下内容:
from pythonping import ping
from tabulate import tabulate
# 定义需要监控的 IP 列表
devices = [
{“name”: “路由器”, “ip”: “192.168.1.1”},
{“name”: “NAS”, “ip”: “192.168.1.100”},
{“name”: “打印机”, “ip”: “192.168.1.50”},
]
results = []
for device in devices:
response = ping(device[“ip”], count=2, timeout=1)
status = “在线” if response.success() else “离线”
results.append([device[“name”], device[“ip”], status])
# 输出结果表格
print(tabulate(results, headers=[“设备名称”, “IP 地址”, “状态”], tablefmt=”grid”))
# 可选:保存结果到文件
with open(“network_status.txt”, “w”, encoding=”utf-8″) as f:
f.write(tabulate(results, headers=[“设备名称”, “IP 地址”, “状态”], tablefmt=”grid”))
三、脚本说明
- 设备列表:devices 中可添加任意 IP 地址及设备名称
- ping 功能:使用 pythonping.ping 对每个设备发送 2 个 ICMP 请求
- 结果输出:通过 tabulate 将结果打印成表格,并可保存到文本文件
- 落地实践:直接运行脚本即可监控家里或办公室的局域网设备
python network_monitor.py
运行后将显示如下效果:
+——–+————–+——–+
| 设备名称 | IP 地址 | 状态 |
+——–+————–+——–+
| 路由器 | 192.168.1.1 | 在线 |
| NAS | 192.168.1.100| 离线 |
| 打印机 | 192.168.1.50 | 在线 |
+——–+————–+——–+
四、扩展实践
- 定时监控:可结合 Windows 任务计划或 Linux cron 实现定时运行
- 邮件通知:若设备离线,可通过 Python 的 smtplib 自动发送邮件
- 可视化:可将结果写入 CSV 文件,用 Excel 或 Power BI 可视化
这篇文章的特点:
- 完全可落地实践,零依赖复杂环境
- 脚本简单,几行代码即可实现
- 适合初学者学习 Python 网络编程和自动化





