python利用pysnmp获取交换机级联接口
2011-11-30 22:05
573 查看
交换机里有一个arp表,利用arp表可以找到与其相连的交换机的mac地址,然后再从mac端口对应表里找出端口
def getTrunk(ip,port,agent,communication): macAddr = [] macList = [] portList = [] macStrList = [] linkPort = [] oid1 = (1,3,6,1,2,1,4,22,1,2)#ARP表oid oid2 = (1,3,6,1,2,1,17,4,3,1,2)#mac端口对应表lid gen = cmdgen.CommandGenerator() errorIndication, errorStatus, errorIndex, varBinds = gen.nextCmd( cmdgen.CommunityData(agent, communication,1), cmdgen.UdpTransportTarget((ip,port)), oid1, ) #获取ARP表里的mac地址 for varBind in varBinds: for name,val in varBind: macAddr.append(val.prettyPrint(0)) gen.ignoreNonIncreasingOid = True#让oid可以非递增 errorIndication, errorStatus, errorIndex, varBinds = gen.nextCmd( cmdgen.CommunityData(agent, communication,1), cmdgen.UdpTransportTarget((ip,port)), oid2, ) #获取mac端口对应关系 for varBind in varBinds: for name,val in varBind: macList.append(name[-6:]) portList.append(val.prettyPrint()) #将十进制mac地址转化为16进制的字符串 for item in macList: temp = '' for part in item: temp += str(hex(int(part)))[2:] temp = '0x' + temp macStrList.append(temp) for item in macAddr:#获取端口号 if item in macStrList: index = macStrList.index(item) linkPort.append(portList[index]) #去除列表中的重复元素 linkPort = {}.fromkeys(linkPort).keys()#linkPort = list(set(linkPort)) return linkPort
相关文章推荐
- 利用Python从数据公司接口获取数据并输出excel格式
- 利用OpenCV 2.2 的Python接口实现Ostu(大津法)获取阈值
- 利用Python调用百度地图接口爬取小区信息
- php利用新浪接口查询ip获取地理位置
- Python入门小练习 003 利用cookielib模拟登录获取账户信息
- 利用python.os.listdir获取文件夹中所有文件名
- 五.python requests ip伪装,cookie登陆获取,利用cookie进行登陆
- python利用selenium获取cookie实现免登陆
- 利用sendmsg和recvmsg来指定发送接口或者获取接收数据接口
- 利用sendmsg和recvmsg来指定发送接口或者获取接收数据接口
- python利用requests库进行接口测试的方法详解
- 利用caffe的python接口创建层
- 利用反射获取子类,父类,接口的信息
- 利用python获取当前日期前后N天或N月日期的方法示例
- 利用Python获取操作系统信息实例
- python 利用swig 调用c++的接口。
- python实现获取系统版本和mac信息上传到指定接口
- Python爬虫获取cookie:利用selenium
- 利用python+plotly 制作接口相应时间Distplot图表
- 利用python获取网页信息以及插入Access数据库