ChatGPT 教我写一个基于python程序开发的网络设备巡检功能
这几天被ChatGPT玩坏了,为什么说是被玩呢,这东西真的太强大了,我现在用的还是版本3就专业溜了,现在已经有版本4了,详细一些人工智能真的还快就会取代一大批只会CV程序员,所以你有什么理由不学习呢。
我觉得以后这随便都可以直接从ChatGPT上提要求然后搬运过来就是了,都可不用写了
方法一

编写一个自动化网络设巡检python程序
为了编写一个自动化网络设备巡检的Python程序,你需要遵循以下步骤:
- 导入必要的库和模块。这些可能包括 Paramiko、Netmiko、Ping、Requests 等。例如:
pythonCopy codeimport paramiko
from netmiko import ConnectHandler
import subprocess
import requests
- 创建连接到设备的函数。这可以是 SSH 连接或 Telnet 连接,具体取决于设备和网络的配置。例如,使用 Paramiko 连接 SSH 设备的示例代码如下:
pythonCopy codedef ssh_connect(host, port, username, password):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, port, username, password)
return ssh
- 创建设备巡检函数。这将检查设备的各种参数,如 CPU 使用率、内存使用率、接口状态等等。这可能需要使用 Netmiko 或其他类似的模块来执行命令和获取输出。例如:
pythonCopy codedef device_check(ip, username, password):
device = {
'device_type': 'cisco_ios',
'ip': ip,
'username': username,
'password': password,
}
net_connect = ConnectHandler(**device)
cpu = net_connect.send_command('show processes cpu sorted | exclude 0.00%CPU')
memory = net_connect.send_command('show processes memory sorted | exclude 0.00%')
interfaces = net_connect.send_command('show ip interface brief | exclude unassigned')
net_connect.disconnect()
return cpu, memory, interfaces
- 创建发送邮件的函数。这将使用 Python 的内置 smtplib 库发送邮件。例如:
pythonCopy codeimport smtplib
from email.mime.text import MIMEText
def send_email(from_addr, to_addr, subject, body, smtp_server, smtp_port, username, password):
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = from_addr
msg['To'] = to_addr
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.login(username, password)
server.sendmail(from_addr, to_addr, msg.as_string())
- 将上述函数组合到一个主函数中,该函数将遍历设备列表并对每个设备执行巡检。例如:
pythonCopy codedef main():
devices = [
{
'ip': '192.168.1.1',
'username': 'admin',
'password': 'password',
},
{
'ip': '192.168.1.2',
'username': 'admin',
'password': 'password',
},
{
'ip': '192.168.1.3',
'username': 'admin',
'password': 'password',
},
]
for device in devices:
cpu, memory, interfaces = device_check(device['ip'], device['username'], device['password'])
if cpu > 80 or memory > 80:
send_email('from@example.com', 'to@example.com', 'Device Alert', f'Device {device['ip']} is experiencing high CPU or memory usage.', 'smtp.example.com', 587, 'username', 'password')
这是一个简单的框架,
方法二

网络设备巡检用python编写一个自动化程序
以下是一个简单的网络设备巡检自动化程序的 Python 代码示例,可以用于检查网络设备的基本配置和状态信息:
复制import paramiko # 定义设备列表
devices = [
{
"hostname": "192.168.1.1",
"username": "admin",
"password": "password",
"port": 22
},
{
"hostname": "192.168.1.2",
"username": "admin",
"password": "password",
"port": 22
}
] # 定义命令列表
commands = [
"show version",
"show interfaces",
"show ip route"
] # 遍历设备列表
for device in devices:
# 创建 SSH 客户端
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接设备
client.connect(
hostname=device["hostname"],
username=device["username"],
password=device["password"],
port=device["port"]
) # 遍历命令列表
for command in commands:
# 执行命令
stdin, stdout, stderr = client.exec_command(command) # 输出命令结果
print(f"Device: {device['hostname']}, Command: {command}")
print(stdout.read().decode()) # 关闭 SSH 连接
client.close()
上述代码使用 Paramiko 库连接到设备并执行命令。在实际使用中,可以根据需要添加更多的命令和设备信息。此外,还可以使用其他 Python 库来解析命令输出并提取有用的信息,例如使用正则表达式或 Beautiful Soup 库来解析 HTML 输出。
ChatGPT 教我写一个基于python程序开发的网络设备巡检功能的更多相关文章
- 手把手教你写一个RN小程序!
时间过得真快,眨眼已经快3年了! 1.我的第一个App 还记得我14年初写的第一个iOS小程序,当时是给别人写的一个单机的相册,也是我开发的第一个完整的app,虽然功能挺少,但是耐不住心中的激动啊,现 ...
- 微信小程序——手把手教你写一个微信小程序
前言 微信小程序年前的跳一跳确实是火了一把,然后呢一直没有时间去实践项目,一直想搞但是工作上不需要所以,嗯嗯嗯嗯嗯emmmmm..... 需求 小程序语音识别,全景图片观看,登录授权,获取个人基本信息 ...
- 教你如何使用Java手写一个基于链表的队列
在上一篇博客[教你如何使用Java手写一个基于数组的队列]中已经介绍了队列,以及Java语言中对队列的实现,对队列不是很了解的可以我上一篇文章.那么,现在就直接进入主题吧. 这篇博客主要讲解的是如何使 ...
- python学习(10)字典学习,写一个三级菜单程序
学习了字典的应用.按老师的要求写一个三级菜单程序. 三级菜单程序需求如下: 1.深圳市的区--街道--社区---小区4级 2.建立一个字典,把各级区域都装进字典里 3.用户可以从1级进入2级再进入3级 ...
- 只有20行Javascript代码!手把手教你写一个页面模板引擎
http://www.toobug.net/article/how_to_design_front_end_template_engine.html http://barretlee.com/webs ...
- 半个小时教你写一个装(bi)逼(she)之地图搜租房
半个小时教你写一个装(bi)逼(she)之地图搜租房 首先需要一个Python3环境,怎么准备我就不多说了,实在不会的出门右转看一下廖雪峰老师的博客. HTML部分 代码来自:高德API+Python ...
- psutil一个基于python的跨平台系统信息跟踪模块
受益于这个模块的帮助,在这里我推荐一手. https://pythonhosted.org/psutil/#processes psutil是一个基于python的跨平台系统信息监视模块.在pytho ...
- 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度。 2)输出字符串中第一个出现字母a的位置。 3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。 4)将字符串“hello”替换为“me”,输出新字符串。 5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。 */
namespace test4 {/* 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度. 2)输出字符串中第一个出现字母a的位置. 3)在字符串的第3个字符 ...
- 写一个基于TCP协议套接字,服务端实现接收客户端的连接并发
''' 写一个基于TCP协议套接字,服务端实现接收客户端的连接并发 ''' client import socket import time client = socket.socket() clie ...
- 【vps】教你写一个属于自己的随机图API
[vps]教你写一个自己的随机图API 前言 刚刚开始使用halo博客的时候,我就发现halo博客系统是可以使用随机图当背景的,所以也是使用了网上一些比较火的随机图API. 在上次发现了各种图片API ...
随机推荐
- 欢迎访问pycharm 每次开启时都显示
文件->设置->外观与行为->系统设置->将"启动时重新打开项目"前的勾去掉
- 第一节 线性数据结构 STL
vector 容器 迭代器 vector<int> v{1, 0, 0, 8, 6}; for(vector<int>::interator it = v.begin(); i ...
- 阅读翻译Prompting Engineering Guides之Introduction(提示工程简介)
阅读翻译Prompting Engineering Guides之Introduction(提示工程简介) 关于 首次发表日期:2024-07-19 Prompting Engineering Gui ...
- Arch Linux install i3-wm
Arch Linux install i3-wm 简介 i3-wm 是一种动态的平铺式窗口管理器,它的设计目标是提供一个快速.简洁.可定制的桌面环境,适合开发者和高级用户使用.它有以下几个特点: 它使 ...
- Python 按分类权重(区间)随机获取分类样本
按分类权重(区间)随机获取分类样本 By:授客 QQ:1033553122 开发环境 win 10 python 3.6.5 需求 活动抽奖,参与抽奖产品有iphone, 华为,小米,魅族,vivo, ...
- vue项目锚点定位+滚动定位
功能: HTML: js: scrollEvent(e) { let scrollItems = document.querySelectorAll('.condition-container') f ...
- Microsoft Dynamics CRM 365/2016 配置POP3/STMP邮箱(附例)
前期准备: 必须支持pop3/stmp的邮箱 以下用网易163邮箱做的测试,注意开通了独立安全码,非邮箱登录密码 1.打开设置>>电子邮件配置 2.新建电子邮件配置 pop3/smtp 3 ...
- 【Spring-Cloud】Nacos2.0.3 单系统集群部署问题汇总
1.强制要求JDK8版本 且 64位 C:\Users\Administrator\Desktop\Nacos-Server\Nacos-2.0.3-8848\bin>java -version ...
- 【Mybatis】04 官方文档指北阅读 vol2 配置 其一
https://mybatis.org/mybatis-3/zh/configuration.html 配置 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息. 配置文 ...
- 【Java】Input,Output,Stream I/O流 03 系统标准流 & 打印流
Standard Input,Output Stream 标准输入输出流 - System.in 系统标准输入流 所属InputStream Scanner(System.in); 默认从键盘获取输入 ...