用 Python 快速监控本地网络设备状态

内容分享9小时前发布
0 0 0

在企业或家庭环境中,监控网络设备是否在线是常见需求。本文将演示如何使用 Python 快速实现本地网络设备状态检测,并输出结果到终端或保存到文件,操作简单,适合初学者实践。

一、准备工作

  1. 安装 Python(推荐 Python 3.10 及以上)
  2. 安装需要的第三方库:

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”))

三、脚本说明

  1. 设备列表:devices 中可添加任意 IP 地址及设备名称
  2. ping 功能:使用 pythonping.ping 对每个设备发送 2 个 ICMP 请求
  3. 结果输出:通过 tabulate 将结果打印成表格,并可保存到文本文件
  4. 落地实践:直接运行脚本即可监控家里或办公室的局域网设备

python network_monitor.py

运行后将显示如下效果:

+——–+————–+——–+

| 设备名称 | IP 地址 | 状态 |

+——–+————–+——–+

| 路由器 | 192.168.1.1 | 在线 |

| NAS | 192.168.1.100| 离线 |

| 打印机 | 192.168.1.50 | 在线 |

+——–+————–+——–+

四、扩展实践

  1. 定时监控:可结合 Windows 任务计划或 Linux cron 实现定时运行
  2. 邮件通知:若设备离线,可通过 Python 的 smtplib 自动发送邮件
  3. 可视化:可将结果写入 CSV 文件,用 Excel 或 Power BI 可视化

这篇文章的特点:

  • 完全可落地实践,零依赖复杂环境
  • 脚本简单,几行代码即可实现
  • 适合初学者学习 Python 网络编程和自动化
© 版权声明

相关文章

暂无评论

none
暂无评论...