Python:通过SNMP协议获取华为交换机的ARP地址表

华为交换机SNMP配置

system-view 进入交换机的配置模式、
[switch]snmp-agent community read huawei 配置community 只读属性为huawei
[switch]snmp-agent community write huawei 配置community 可写属性为huawei
[switch]snmp-agent sys-info version all 配置版本为所有

# coding=utf-8import systry:from pysnmp.entity.rfc3413.oneliner import cmdgen
except Exception as e:print("You need to download pysnmp and pyasn1", e)sys.exit(1)oTable = {"entLogicalCommunity": (1, 3, 6, 1, 2, 1, 47, 1, 2, 1, 1, 4),"entPhysicalModelName": (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, 13, 1),"entLogicalDescr": (1, 3, 6, 1, 2, 1, 47, 1, 2, 1, 1, 2),"dot1dBasePort": (1, 3, 6, 1, 2, 1, 17, 1, 4, 1, 1),"dot1dTpFdbPort": (1, 3, 6, 1, 2, 1, 17, 4, 3, 1, 2),"dot1dBasePortIfIndex": (1, 3, 6, 1, 2, 1, 17, 1, 4, 1, 2),"dot1dTpFdbAddress": (1, 3, 6, 1, 2, 1, 17, 4, 3, 1, 1),"ifDescr": (1, 3, 6, 1, 2, 1, 2, 2, 1, 2),"ifName": (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 1),"ifSpeed": (1, 3, 6, 1, 2, 1, 2, 2, 1, 5),"ifAlias": (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18),"sysName": (1, 3, 6, 1, 2, 1, 1, 5, 0),"sysDescr": (1, 3, 6, 1, 2, 1, 1, 1, 0),"dot3StatsDuplexStatus": (1, 3, 6, 1, 2, 1, 10, 7, 2, 1, 19),"ifAdminStatus": (1, 3, 6, 1, 2, 1, 2, 2, 1, 7),"ifOperStatus": (1, 3, 6, 1, 2, 1, 2, 2, 1, 8),"atPhysAddress": (1, 3, 6, 1, 2, 1, 3, 1, 1, 2),"ipAdEntAddr": (1, 3, 6, 1, 2, 1, 4, 20, 1, 1),"ipAdEntIfIndex": (1, 3, 6, 1, 2, 1, 4, 20, 1, 2),"ARP": (1, 3, 6, 1, 2, 1, 3, 1, 1, 2),"HW": (1, 3, 6, 1, 2, 1, 4, 22, 1, 2)
}def walk(dswitch, community, oid):"""This function will return the table of OID's that I am walking"""errorIndication, errorStatus, errorIndex, \generic = cmdgen.CommandGenerator().nextCmd(cmdgen.CommunityData('my-agent', community, mpModel=1),cmdgen.UdpTransportTarget((dswitch, 161)), oid)if errorIndication:return errorIndicationreturn genericentaddr = walk("192.168.80.1", "huawei", oTable["HW"])arp_table = []"""======主函数======"""
# Press the green button in the gutter to run the script.
if __name__ == '__main__':for i in entaddr:temp = ''for j in i:temp += str(j)temp = temp.replace("SNMPv2-SMI::mib-2.4.22.1.2.", "")temp = temp[temp.find('.') + 1:]temp = temp.split(' = ')arp_table.append(temp)# 打印ARP表for list_IP_MAC in arp_table:print(list_IP_MAC)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/546760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你真的知道 == 和 equals 的区别吗?

让我们每天都有进步,老王带你打造最全的 Java 面试清单,认真把一件事做到极致。 在 Java 中 和 equals 的区别,感觉只有很少的人能才完全说正确。 常见的错误回答就是: 基础类型对比的是值是否相同,引用类型对比的是…

Ray集群搭建 Python Demo

目录 准备条件(基于linux环境) 参考文献例子-python Ray集群 1.部署head节点2.部署worker节点部署Ray集群安装Ray(在所有节点上安装)Ray工作原理Ray的优势Ray简介准备条件(基于linux环境) 这里部署2个节点…

解决复杂多数据源报表的5种通用办法

很多报表工具只允许在报表中使用单个数据集,这类工具称为单源报表工具,常见的比如iReport,Birt,水晶报表,Style report等。很多情况下我们需要用单源报表工具展现多源数据,比如来自MysqlOracle的数据&#…

Java 200+ 面试题补充② Netty 模块

让我们每天都能看到自己的进步。老王带你打造最全的 Java 面试清单,认真把一件事做到最好。 本文是前文《Java 最常见的 200 面试题》的第二个补充模块,第一模块为:《Java 200 面试题补充 ThreadLocal 模块》。 1.Netty 是什么? …

Ray.tune可视化调整超参数Tensorflow 2.0

Ray.tune官方文档 调整超参数通常是机器学习工作流程中最昂贵的部分。 Tune专为解决此问题而设计,展示了针对此痛点的有效且可扩展的解决方案。 请注意,此示例取决于Tensorflow 2.0。 Code: ray/python/ray/tune at master ray-project/ray GitHub E…

pyqt5中的lineEdit中只输入数字和字母

# 限制lineEdit编辑框只能输入字符和数字reg QRegExp([a-zA-z0-9]$)validator QRegExpValidator(self)validator.setRegExp(reg)self.lineEdit.setValidator(validator)

(Kali)BackTrack-linux安全***测试系统盘

BackTrack下一代产品 Kali Linux包含i386平台、amd64平台、armel平台、armhf平台;镜像包括ISO版本和VMWare版本;桌面管理器分为Gnome和MINI ISO。Kali是BackTrackLinux完全遵循Debian开发标准彻底的完全重建.全新的目录框架,复查并打包所有工具,我们还为…

MySql 优化的 30 条建议

文章来源&#xff1a;包子博客MySql 优化的 30 条建议1、应尽量避免在 where 子句中使用!或<>操作符&#xff0c;否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化&#xff0c;应尽量避免全表扫描&#xff0c;首先应考虑在 where 及 order by 涉及的列上建立索引…

PyQt5 QTableView 全部item居中

核心思路是重写QStandardItemModel的data函数 class MyQStandardItemModelModel(QStandardItemModel):"""重写QStandardItemModel的data函数&#xff0c;使QTableView全部item居中"""def data(self, index, roleNone):if role Qt.TextAlignmen…

Ubuntu18 Win10搭建Caffe训练识别mnist手写数字demo

ubuntu 系统下的Caffe环境搭建 对于caffe的系统一般使用linux系统&#xff0c;当然也有windows版本的caffe&#xff0c;不过如果你一开始使用了windows下面的caffe&#xff0c;后面学习的过程中&#xff0c;会经常遇到各种错误&#xff0c;网上下载的一些源码、模型也往往不能…

windows server 2008 IE代理服务器实验

一、首先介绍IE代理服务器的好处如下&#xff1a;1、节省带宽 2、绕过防火墙二、下面以这个软件为代理软件&#xff0c;本人在物理机和虚拟机实验&#xff0c;1、首先在物理机安装代理软件&#xff0c;安装完成如图所示&#xff1a;2、在“设置”项代理协议端口、在本地局域网…

Java 200+ 面试题补充③ Dubbo 模块

昨天在我的 Java 面试粉丝群里&#xff0c;有一个只有一年开发经验的小伙伴只用了三天时间&#xff0c;就找到了一个年薪 20 万的工作&#xff0c;真是替他感到开心。 他的经历告诉我们&#xff1a;除了加强自我实战经验之外&#xff0c;还要努力积累自己的理论知识。 人生没有…

十一、PyQt5点击主窗口弹出另一个非模态子窗口

单击主对话框菜单“设置“下的”交换机配置”action的信号与槽 主对话框代码: # -*- coding: utf-8 -*-import sys from PyQt5 import QtCore from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog, QDesktopWidget import win32api import win32con

彻底搞懂 Java 中的注解 Annotation

Java注解是一系列元数据&#xff0c;它提供数据用来解释程序代码&#xff0c;但是注解并非是所解释的代码本身的一部分。注解对于代码的运行效果没有直接影响。网络上对注解的解释过于严肃、刻板&#xff0c;这并不是我喜欢的风格。尽管这样的解释听起来非常的专业。为了缓解大…

cs时间校准

2019独角兽企业重金招聘Python工程师标准>>> c/s结构中的时间校准 拜读了风云的一篇博客 思路比较明显简单: C发包打时间戳 S收包打时间戳 S回应包打时间戳 C收包打时间戳 4个时间戳可以进行计算校准. 假设来回时间相等 转载于:https://my.oschina.net/u/1449566/bl…

使用ACME部署生成阿里云免费HTTPS证书

使用ACME部署HTTPS证书 背景 现在越来越多的服务都是基于web&#xff0c;大多数默认使用HTTP协议。HTTP协议是一种没有加密的协议&#xff0c;所有数据都通过明文传输&#xff0c;即便是只在内网使用也存在一定的安全风险。尤其是对于登录等操作&#xff0c;账号密码通过HTTP…

十、封装python3读写ini文件类

自己编写封装的python3读写ini文件类。 main.py # -*- coding: utf-8 -*- import os import configparserclass OperateIniFile:"""python操作ini文件类"""def __init__(self, strOpenFileName):"""初始化"""sel…

Java性能优化的50个细节(珍藏版)

来源&#xff1a;http://t.cn/EMze6kc在JAVA程序中&#xff0c;性能问题的大部分原因并不在于JAVA语言&#xff0c;而是程序本身。养成良好的编码习惯非常重要&#xff0c;能够显著地提升程序性能。1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担&#xff0c;缩短加载…

强化学习基础篇 OpenAI Gym 环境搭建demo

1. Gym介绍 Gym是一个研究和开发强化学习相关算法的仿真平台&#xff0c;无需智能体先验知识&#xff0c;由以下两部分组成 Gym开源库&#xff1a;测试问题的集合。当你测试强化学习的时候&#xff0c;测试问题就是环境&#xff0c;比如机器人玩游戏&#xff0c;环境的集合就…

九、PyQt5 QLineEdit输入的子网字符串校验QRegExp

自己编写的用于对lineEdit编辑框输入的子网,例如:192.168.60.1/24字符串校验是否合规。 # 限制lineEdit编辑框只能输入./字符和数字reg = QRegExp([0-9./]+$)validator = QRegExpValidator(self)validator.setRegExp(reg)self.lineEditSubNet.setValidator(validator)