这几天被ChatGPT玩坏了,为什么说是被玩呢,这东西真的太强大了,我现在用的还是版本3就专业溜了,现在已经有版本4了,详细一些人工智能真的还快就会取代一大批只会CV程序员,所以你有什么理由不学习呢。

我觉得以后这随便都可以直接从ChatGPT上提要求然后搬运过来就是了,都可不用写了

方法一

编写一个自动化网络设巡检python程序

为了编写一个自动化网络设备巡检的Python程序,你需要遵循以下步骤:

  1. 导入必要的库和模块。这些可能包括 Paramiko、Netmiko、Ping、Requests 等。例如:
pythonCopy codeimport paramiko
from netmiko import ConnectHandler
import subprocess
import requests
  1. 创建连接到设备的函数。这可以是 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
  1. 创建设备巡检函数。这将检查设备的各种参数,如 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
  1. 创建发送邮件的函数。这将使用 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())
  1. 将上述函数组合到一个主函数中,该函数将遍历设备列表并对每个设备执行巡检。例如:
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程序开发的网络设备巡检功能的更多相关文章

  1. 手把手教你写一个RN小程序!

    时间过得真快,眨眼已经快3年了! 1.我的第一个App 还记得我14年初写的第一个iOS小程序,当时是给别人写的一个单机的相册,也是我开发的第一个完整的app,虽然功能挺少,但是耐不住心中的激动啊,现 ...

  2. 微信小程序——手把手教你写一个微信小程序

    前言 微信小程序年前的跳一跳确实是火了一把,然后呢一直没有时间去实践项目,一直想搞但是工作上不需要所以,嗯嗯嗯嗯嗯emmmmm..... 需求 小程序语音识别,全景图片观看,登录授权,获取个人基本信息 ...

  3. 教你如何使用Java手写一个基于链表的队列

    在上一篇博客[教你如何使用Java手写一个基于数组的队列]中已经介绍了队列,以及Java语言中对队列的实现,对队列不是很了解的可以我上一篇文章.那么,现在就直接进入主题吧. 这篇博客主要讲解的是如何使 ...

  4. python学习(10)字典学习,写一个三级菜单程序

    学习了字典的应用.按老师的要求写一个三级菜单程序. 三级菜单程序需求如下: 1.深圳市的区--街道--社区---小区4级 2.建立一个字典,把各级区域都装进字典里 3.用户可以从1级进入2级再进入3级 ...

  5. 只有20行Javascript代码!手把手教你写一个页面模板引擎

    http://www.toobug.net/article/how_to_design_front_end_template_engine.html http://barretlee.com/webs ...

  6. 半个小时教你写一个装(bi)逼(she)之地图搜租房

    半个小时教你写一个装(bi)逼(she)之地图搜租房 首先需要一个Python3环境,怎么准备我就不多说了,实在不会的出门右转看一下廖雪峰老师的博客. HTML部分 代码来自:高德API+Python ...

  7. psutil一个基于python的跨平台系统信息跟踪模块

    受益于这个模块的帮助,在这里我推荐一手. https://pythonhosted.org/psutil/#processes psutil是一个基于python的跨平台系统信息监视模块.在pytho ...

  8. 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度。 2)输出字符串中第一个出现字母a的位置。 3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。 4)将字符串“hello”替换为“me”,输出新字符串。 5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。 */

    namespace test4 {/* 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度. 2)输出字符串中第一个出现字母a的位置. 3)在字符串的第3个字符 ...

  9. 写一个基于TCP协议套接字,服务端实现接收客户端的连接并发

    ''' 写一个基于TCP协议套接字,服务端实现接收客户端的连接并发 ''' client import socket import time client = socket.socket() clie ...

  10. 【vps】教你写一个属于自己的随机图API

    [vps]教你写一个自己的随机图API 前言 刚刚开始使用halo博客的时候,我就发现halo博客系统是可以使用随机图当背景的,所以也是使用了网上一些比较火的随机图API. 在上次发现了各种图片API ...

随机推荐

  1. C++中的引用(Reference)

    1. 引用(Reference) 在 C++ 中,引用(Reference)是一个变量的别名. 它允许你通过不同的名字访问同一个变量. 与指针不同,引用在定义时必须被初始化,并且一旦绑定到某个变量,之 ...

  2. Docker运维之容器的日志清理

    在容器运行的过程中,通常会产生大量的日志,尤其是应用程序本身记录了info级别的日志时候,程序的标准输出记录到容器的日志.这样会占用大量的磁盘空间,严重者导致IO异常,最终服务会宕机. 方案一:定期手 ...

  3. TokenObtainPairSerialize和TokenObtainPairView

    TokenObtainPairSerializer和TokenObtainPairView是Django REST framework的SimpleJWT库提供的两个相关的类. TokenObtain ...

  4. [oeasy]python0137_相加运算_python之禅_import_this_显式转化

    变量类型 相加运算 回忆上次内容 上次讲了是从键盘输入变量 input 函数 可以有提示字符串 需要有具体的变量接收输入的字符串   输入单个变量没有问题 但是输入两个变量之后 一相加就非常离谱   ...

  5. oeasy教您玩转vim - 6 - # 保存修改

    另存与保存 回忆上节课内容 我们上次进入了插入模式 从正常模式,按<kbd>i</kbd>,进插入模式 从插入模式,按<kbd>ctrl</kbd>+& ...

  6. AT_agc017_b 题解

    洛谷链接&Atcoder 链接 本篇题解为此题较简单做法,请放心阅读. 题目简述 一共有 \(n\) 个格子,给定两个整数 \(A,B\) 分别位于第 \(1\) 和第 \(n\) 格,中间有 ...

  7. C语言数据类型转换(自动类型转换+强制类型转换)

    自动类型转换 1) 将一种类型的数据赋值给另外一种类型的变量时就会发生自动类型转换,例如: float f = 100; int n = f; f 是 float 类型的数据,需要先转换为 int 类 ...

  8. Python 正则表达式实战之Java日志解析

    需求描述 基于生产监控告警需求,需要对Java日志进行解析,提取相关信息,作为告警通知消息的内容部分. 提取思路 具体怎么提取,提取哪些内容呢?这里笔者分析了大量不同形态的生产日志,最后总结出4种形态 ...

  9. python virtualenv虚拟环境配置与使用

    python virtualenv虚拟环境配置与使用 By:赖富玉 QQ:1033553122 概述 python开发过程中,我们可能需要同时开发多款应用,这些应用可能公用同一个版本的Python程序 ...

  10. 解决Prism中对话框服务中对话框开启时回调函数不会触发的问题

    解决办法 新建一个类DialogServiceExtend,然后在再注册 public class DialogServiceExtend : DialogService { public Dialo ...