python通过snmp获取usg接口上的公网IP

在华为usg防火墙上配置了snmp v3,通过python的netsnmp模块获取接口上的公网上。

  • usg上的snmp配置,将yorur_usernam、your_auth_pass、yoru_priva_pass替换你自己的设置
snmp-agent
snmp-agent sys-info version v3
snmp-agent group v3 v3group privacy read-view v3view write-view v3view notify-view v3view
snmp-agent mib-view included v3view iso
snmp-agent usm-user v3 your_username
snmp-agent usm-user v3 your_username group v3group
snmp-agent usm-user v3 your_username authentication-mode sha cipher your_auth_pass
snmp-agent usm-user v3 your_username privacy-mode aes128 cipher yoru_priva_pass
snmp-agent trap source Vlanif11
snmp-agent trap enable

int vlan 11
service-manage snmp permit
  • 在linux下通过下面的命令可以获取usg接口上的所有IP

    snmpwalk  -O n -v 3 -u your_username -a SHA -A ‘your_auth_pass‘     -x AES -X ‘yoru_priva_pass‘     -l authPriv your_vlan11_ip  IP-MIB::ipAdEntAddr
  • 通过python脚本获取接口上的公网IP
#!/usr/.bin/pythyon
import netsnmp
from IPy  import IP

ips = netsnmp.snmpwalk(".1.3.6.1.2.1.4.20.1.1",
                                      Version=3,
                                      SecName="your_username",
                                      DestHost="yoru_vlan11_ip",
                                      AuthProto="SHA",
                                      AuthPass="your_auth_pass",
                                      PrivProto="AES",
                                      PrivPass="yoru_priva_pass",
                                      SecLevel="authPriv"
                                      )

for ip in ips:
    if IP(ip).iptype() is ‘PUBLIC‘:
        print ip

原文地址:https://blog.51cto.com/penguintux/2414830

时间: 2024-07-30 19:14:28

python通过snmp获取usg接口上的公网IP的相关文章

python爬虫之获取 wtfx.tk 上的 ss 二维码

wtfx.tk 是一个分享免费 ss 账号的网站,但是他分享的只是二维码.而最新版 ss 不能扫描网页上的二维码,所以要把图片下载下来,这样是十分费事的.所以我专门写了一个爬虫,用于将该网站上的二维码保存到本地文件夹. 该爬虫运行会删除相对路径下的 pic 文件夹,并新建一个 pic 文件夹用于存储二维码.请慎用. 如果相对路径下没有 pic 文件夹,爬虫会进行提示,按下 Enter 即可继续. 源代码如下: 1 #coding:utf-8 2 __Author__ = 'liuqi' 3 im

如何使用PowerShell实时获取自己的公网IP地址

又是不知道多久没更新过博客了,这篇其实早就想好了要写不过一拖就是几个月,最近拖延症真是疯狂爆发了.先说一下今天想写什么吧,其实很简单,就是如何使用PowerShell来实时的获取一台计算机的公网IP地址.公网IP是什么就不需要说了,实时获取公网IP的意义在于什么呢? 首先来说一下这篇文章的背景,家里有一台台式机因为各种各样的原因经常整天或者整星期的开机(做实验或者挂机等等),很多时候在单位想看看家里的情况如何或者想做做实验都需要远程连回去,连回去的方法不外乎那么几种,一个是通过Remote De

通过公网IP访问云服务上的内容

首先安装好git 1.打开git 2.ssh [email protected]公网IP 回车 输入登录密码 如果上面的登录不上去就使用 1.ssh [email protected]公网IP -i 秘钥.pem文件路径 回车 2.输入登录密码如果两者都不能登录 那就重装系统 重新备份好密码 秘钥 如果显示ssh连接失败,就去网上搜一下如果解决ssh秘钥问题,或者将报错翻译一下就会告诉你那里错误,改删的文件删除一下在重新使用指令,错误很简单就能解决,不要慌... 或者使用Xshell登录,执行下

获取在接口或者类上定义的泛型类型

通过Class类上的 getGenericSuperclass() 或者 getGenericInterfaces() 获取父类或者接口的类型,然后通过ParameterizedType.getActualTypeArguments() 可以得到定义在类或者接口上的泛型类型,具体参考如下代码: package com.jiaoyiping.event; /* * Created with Intellij IDEA * USER: 焦一平 * Mail: [email protected] *

使用python或robotframework调multipart/form-data接口上传文件

这几天调一个multipart/form-data类型的接口,遇到点小阻碍.之前同事有使用urllib库写了个类似的方法实现,比较长,想要改的时候发现不太好使.在网上查找发现用requests库做这个更强大.下面具体介绍一下python-requests及robotframework-RequestsLibrary实现multipart/form-data接口上传文件.1.从fiddler查看接口长这样:Header: WebForms: 2.python-requests实现 #!/usr/b

python requests库学习笔记(上)

尊重博客园原创精神,请勿转载! requests库官方使用手册地址:http://www.python-requests.org/en/master/:中文使用手册地址:http://cn.python-requests.org/zh_CN/latest/: requests库作者Kenneth Reitz个人主页:https://www.kennethreitz.org/: requests库github地址:https://github.com/requests/requests: requ

python执行shell获取硬件参数写入mysql

最近要获取服务器各种参数,包括cpu.内存.磁盘.型号等信息.试用了Hyperic HQ.Nagios和Snmp,它们功能都挺强大的,但是于需求不是太符,亦或者太heavy. 于是乎想到用python执行shell获取这些信息,python执行shell脚本有以下三种方法: 1. os.system() os.system('ls')#返回结果0或者1,不能得到命令的输出 2. os.popen() output = os.popen('ls') print output.read()#打印出的

python 学习笔记 3 -- 数据结构篇上

数据结构是可以处理一些 数据 的 结构 .或者说,它们是用来存储一组相关数据的.在Python中有三种内建的数据结构--列表.元组和字典.本文主要对这三种数据类型以及相关的使用做介绍,以例子的形式演示更加容易理解! 1.列表(List) 列表是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目.在Python中,你在每个项目之间用逗号分割. 列表中的项目应该包括在**方括号**中,这样Python就知道你是在指明一个列表.一旦你创建了一个列表,你可以添加.删除或是搜索列表中的

如何用python从文中获取文件名再用正则表达式批量修改文件名

第零步:问题的提出 我在网上购买了星火英语的六级晨读美文100篇(六级早已高分飘过,不过很喜欢这些文章,买来重新品味),但是发现其文章的命名都为01.txt或10.txt等.为了便于检索需要修改文件名称. 第一步:从文件中取出文件名. 我发现txt文件的第一行为文件名,格式为如:Passage 3. Three Passions I Have Lived for, 后面还有几个换行符.写下如下代码进行第一步修改: import os x = 1 while x < 101: if x < 10