python嗅探dhcp服务_python练手--Infoblox WAPI实现DHCP服务备份、告警、数据分析

笔者所在的单位之前更换了DHCP服务,采用了商用的infoblox的DDI解决方案。基本所有操作均在图形化界面上进行设置。但存在一些问题,比如配置备份需要手动备份、多个账号配置修改不知道谁改了什么东西,另一方面单位地址池庞大,有170余个地址池,7万左右ip地址参与自动分配,数据资源非常丰富。

为了改善这类问题,笔者查阅了一些资料,发现infoblox社区里提供了友善的Infoblox Perl API (PAPI) 、the REST Api (WAPI)、Data and Management API(DMAPI)等等接口。笔者筛选了一下,决定利用WAPI接口写了两段功能性代码完成自动化配置备份、地址信息备份,修改告警的功能。另一方面立足于笔者所在单位的实际情况将WAPI进行二次封装,提取园区内设备IP、MAC、Type、Name信息,为之后数据分析提供基础数据。

直接贴上浓郁鲜橙多口味的py代码:

readinfo.py

#!/usr/bin/env python

#encoding=utf-8

from __future__ import print_function

from pyinfoblox import InfobloxWAPI

import telnetlib,os,time,sys

import smtplib

from email.mime.text import MIMEText

from email.header import Header

import email.mime.multipart

from email.MIMEMultipart import MIMEMultipart

from email.MIMEBase import MIMEBase

from email import Encoders

reload(sys)

sys.setdefaultencoding('utf8')

infoblox = InfobloxWAPI(

username = '***',

password = '******',

wapi = 'https://******/wapi/vx.x/'

)

#登陆 DHCP服务器

networks = infoblox.network.get()

#读取地址池配置文件

os.system('mv /var/python/beifen/DHCP/beifen/DHCP_networks.txt /var/python/beifen/DHCP/old/DHCP_networks.txt')

os.system('mv /var/python/beifen/DHCP/beifen/ip_networks.txt /var/python/beifen/DHCP/old/ip_networks.txt')

#将上次备份的全量配置文件转移至old文件夹以便配置恢复

file1 = open('/var/python/beifen/DHCP/beifen/DHCP_networks.txt','wb')

file = open('/var/python/beifen/DHCP/beifen/ip_networks.txt','wb')

#新建两个文件,一个为地址池配置文件。一个为逻辑筛选的地址池

for i in networks:

file1.write(str(i))

try:

file.write(i['comment'])

file.write('\n')

except KeyError:

file.write('no comment')

file.write('\n')

file.write(i['network'])

file.write('\n')

file.write('\n')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值