网络自动化用Python吗?真实场景告诉你怎么用

网络自动Python吗?当然可以

每天登录路由器查日志,手动配置交换机端口,或者定期抓取某个网页的数据?这些重复操作其实早就可以交给Python来完成。网络自动化用Python不仅可行,而且已经成为运维、网工甚至普通办公族提升效率的常用手段。

为什么选Python做网络自动化

Python语法简单,第三方库丰富,学习门槛低。比如requests发个HTTP请求只要一行代码,用paramiko连SSH设备也只需要几行就能搞定。就算你不是程序员,花几天时间也能写出自动备份路由器配置的小脚本。

很多公司里的网络设备支持API或命令行接口,Python正好能通过这些接口批量操作。比如你要给10台交换机同时修改VLAN设置,手动一台台敲命令得半小时,而写个脚本几分钟就跑完了。

实际例子:自动获取公网IP并保存

家里或公司宽带经常断线换IP,每次都要打开浏览器查当前公网IP?可以用Python写个小工具定时检查,并把结果记下来。

import requests
import time
with open('ip_log.txt', 'a') as f:
while True:
try:
ip = requests.get('http://ifconfig.me/ip', timeout=5).text.strip()
log_line = f'{time.strftime("%Y-%m-%d %H:%M:%S")} - {ip}\n'
f.write(log_line)
print(log_line, end='')
except Exception as e:
print("获取失败:", e)
time.sleep(60)

这个小脚本每分钟检查一次公网IP,记录变化时间。不需要一直盯着屏幕,出问题回看日志就行。

进阶一点:批量登录设备备份配置

如果你管着几台路由器或防火墙,可以用Python配合paramiko自动登录,执行show running-config之类的命令,把输出保存到本地文件。

import paramiko
hosts = ['192.168.1.1', '192.168.1.2']
username = 'admin'
password = 'yourpass'
for ip in hosts:
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip, port=22, username=username, password=password, timeout=5)
stdin, stdout, stderr = ssh.exec_command('show running-config')
config = stdout.read().decode()
with open(f'{ip}_config.txt', 'w') as f:
f.write(config)
ssh.close()
print(f'{ip} 配置已备份')
except Exception as e:
print(f'{ip} 备份失败: {e}')

这种操作一旦写好,以后点一下就全备份了,再也不怕设备坏了没配置。

普通人也能上手的小项目

你不一定要管企业网络。比如你是个小店老板,用Python写个脚本能每天早上自动测试网络是否通畅,不通就发微信提醒你;或者监控家里摄像头有没有掉线。这些都能用几段代码实现。

现在连一些家用路由器都支持REST API,Python调起来比手机App还快。别再手动点了,让程序替你值班。