0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用python對(duì)比華為設(shè)備配置是否改變(eNSP模擬器)

網(wǎng)絡(luò)技術(shù)干貨圈 ? 來(lái)源:網(wǎng)絡(luò)技術(shù)干貨圈 ? 2024-01-17 09:14 ? 次閱讀

實(shí)驗(yàn)拓?fù)洌?/p>

34661d7e-b4cf-11ee-8b88-92fbcf53809c.png

將路由器橋接到與Linux系統(tǒng)同一網(wǎng)段,保證可以L(fǎng)inux系統(tǒng)和路由器能夠通信。

要求:

一共要制作兩個(gè)函數(shù):

第一個(gè)函數(shù)用于獲取設(shè)備配置(注意:華為設(shè)備只獲取sysname xxx到return之間的部分)。

第二個(gè)函數(shù)每五秒獲取一次設(shè)備配置,并計(jì)算配置的MD5值。如果和之前的MD5相同就打印MD5,如果不相同就打印告警并退出。

步驟:

1.在AR上配置SSH。(略)

2.創(chuàng)建dev_ssh.py文件,使用paramiko連接AR。

#導(dǎo)入paramiko模塊
importparamiko
importtime

#定義ssh的函數(shù),方便調(diào)用
defdev_ssh(ip,username,password,port=22,cmd='discu
'):
ssh=paramiko.SSHClient()
ssh.load_system_host_keys()
#如果沒(méi)有密鑰,添加密鑰
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,port,username,password,timeout=5,compress=True)
command=ssh.invoke_shell()
#保證discu能夠一次將所有信息顯示出來(lái)
command.send('screen-length0temporary
')
#輸入命令
command.send(cmd)
time.sleep(2)
output=command.recv(65535)
x=output.decode('ascii')
#返回shell界面顯示的內(nèi)容
returnx

#本地進(jìn)行測(cè)試
if__name__=='__main__':
print(dev_ssh('192.168.0.11','prin','Huawei@123'))

3.創(chuàng)建compare_md5.py文件,獲取配置的MD5值并比較。

#引入dev_ssh.py模塊中的dev_ssh函數(shù)
fromdev_sshimportdev_ssh
#引入正則表達(dá)式的模塊
importre
#引入計(jì)算hash值的模塊
importhashlib
#引入time模塊
importtime

#定義獲取配置的函數(shù)
defdev_get_config(ip,username='admin',password='Huawei@123'):
try:
#調(diào)用dev_ssh函數(shù)得到配置信息
dev_config_raw=dev_ssh(ip,username,password)
#使用正則表示匹配sysname---return之前的配置信息
dev_config=re.findall('sysname[sS]+return',dev_config_raw)[0]
#返回處理后的配置信息
returndev_config
exceptException:
return

#定義計(jì)算和比較MD5值的函數(shù)
defcheck_diff(ip,username='admin',password='Huawei@123'):
#計(jì)算初始的MD5值,并賦值給before_md5變量
m=hashlib.md5()
m.update(dev_get_config(ip,username).encode())
before_md5=m.hexdigest()
#每隔5s檢查重新計(jì)算一次MD5值,并與初始的MD5值進(jìn)行對(duì)比
whileTrue:
time.sleep(5)
m=hashlib.md5()
m.update(dev_get_config(ip,username,password).encode())
#如果兩次對(duì)比相同,打印出MD5值
ifbefore_md5==m.hexdigest():
print(before_md5)
#如果兩次對(duì)比不相同,在打印最新的MD5值的同時(shí),退出循環(huán),并且打印告警信息
else:
print(m.hexdigest())
print('MD5valuechanged!')
break

#進(jìn)行測(cè)試
if__name__=='__main__':
check_diff('192.168.0.11','prin')

查看結(jié)果:

34c58200-b4cf-11ee-8b88-92fbcf53809c.png

在程序運(yùn)行的時(shí)候,我們將配置做一定的改變,可以看到MD5值發(fā)生了改變,并且有對(duì)應(yīng)的提示。








審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    594

    瀏覽量

    27407
  • 路由器
    +關(guān)注

    關(guān)注

    22

    文章

    3732

    瀏覽量

    113849
  • 模擬器
    +關(guān)注

    關(guān)注

    2

    文章

    877

    瀏覽量

    43243
  • SSH
    SSH
    +關(guān)注

    關(guān)注

    0

    文章

    189

    瀏覽量

    16348
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84727

原文標(biāo)題:使用python對(duì)比華為設(shè)備配置是否改變(eNSP模擬器),看完就會(huì)!

文章出處:【微信號(hào):網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號(hào):網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    [下載]華為的路由模擬器3.0

    華為的路由模擬器3.0
    發(fā)表于 07-02 08:29

    eNSP模擬器的簡(jiǎn)要的操作詳細(xì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是eNSP模擬器的簡(jiǎn)要的操作詳細(xì)資料說(shuō)明。
    發(fā)表于 12-12 08:00 ?6次下載
    <b class='flag-5'>eNSP</b><b class='flag-5'>模擬器</b>的簡(jiǎn)要的操作詳細(xì)資料說(shuō)明

    eNSP華為模擬器軟件安裝指南

    eNSP華為模擬器軟件安裝指南
    發(fā)表于 08-20 17:47 ?4次下載

    2分鐘快速教你如何在華為模擬器ensp上進(jìn)行抓包?

    2分鐘快速教你如何在華為模擬器ensp上進(jìn)行抓包?
    的頭像 發(fā)表于 12-05 11:25 ?4576次閱讀

    帶有Python的NeoPixel模擬器

    電子發(fā)燒友網(wǎng)站提供《帶有Python的NeoPixel模擬器.zip》資料免費(fèi)下載
    發(fā)表于 12-29 11:32 ?1次下載
    帶有<b class='flag-5'>Python</b>的NeoPixel<b class='flag-5'>模擬器</b>

    華為最新模擬器eNSP Lite即將要發(fā)布了!

    多產(chǎn)品模擬能力:支持?jǐn)?shù)據(jù)通信產(chǎn)品線(xiàn)NE路由、CE交換機(jī)、S交換機(jī)、AR路由、USG防火墻等,并持續(xù)更新支持網(wǎng)元類(lèi)型。配置模擬能力:具備
    的頭像 發(fā)表于 04-14 11:38 ?1.3w次閱讀

    華為新版模擬器eNSP Lite安裝攻略

    最近華為發(fā)布了新版模擬器eNSP Lite的產(chǎn)品手冊(cè),根據(jù)產(chǎn)品手冊(cè)描述,新版模擬器eNSP Lite基于云端發(fā)布,所以安裝和登錄新版
    的頭像 發(fā)表于 05-17 10:25 ?7238次閱讀
    <b class='flag-5'>華為</b>新版<b class='flag-5'>模擬器</b><b class='flag-5'>eNSP</b> Lite安裝攻略

    華為新版模擬器eNSP Lite

    同時(shí)eNSP Lite在保留舊版模擬器eNSP操作界面的基本功能的基礎(chǔ)上,也增加了新的功能,比如tcpdump功能,這個(gè)功能可以替代wireshark,完成對(duì)報(bào)文的抓取和分析。根據(jù)手冊(cè)整理,下面從登錄、創(chuàng)建沙箱、
    的頭像 發(fā)表于 05-19 14:58 ?6011次閱讀
    <b class='flag-5'>華為</b>新版<b class='flag-5'>模擬器</b><b class='flag-5'>eNSP</b> Lite

    華為eNSP模擬器安裝教程

    華為eNSP模擬器安裝教程
    的頭像 發(fā)表于 08-11 10:57 ?3070次閱讀
    <b class='flag-5'>華為</b><b class='flag-5'>eNSP</b><b class='flag-5'>模擬器</b>安裝教程

    新版華為模擬器eNSP Pro的安裝方法

    大家都期待了很久的eNSP Pro新玩法來(lái)了!
    的頭像 發(fā)表于 08-22 09:53 ?3863次閱讀
    新版<b class='flag-5'>華為</b><b class='flag-5'>模擬器</b><b class='flag-5'>eNSP</b> Pro的安裝方法

    華為防火墻的安全策略配置實(shí)例

    今天給大家介紹華為防火墻的安全策略配置實(shí)例。本文采用華為eNSP模擬器,設(shè)計(jì)了一個(gè)USG6000系列防火墻的
    的頭像 發(fā)表于 09-22 09:36 ?8707次閱讀
    <b class='flag-5'>華為</b>防火墻的安全策略<b class='flag-5'>配置</b>實(shí)例

    華為ensp模擬器vlan配置命令

    華為eNSP(Enterprise Network Simulation Platform)是華為公司開(kāi)發(fā)的一款網(wǎng)絡(luò)模擬器軟件,可以模擬真實(shí)
    的頭像 發(fā)表于 12-08 14:04 ?4645次閱讀

    使用python對(duì)比華為設(shè)備配置是否改變

    將路由橋接到與Linux系統(tǒng)同一網(wǎng)段,保證可以L(fǎng)inux系統(tǒng)和路由能夠通信。
    的頭像 發(fā)表于 08-14 17:52 ?449次閱讀
    使用<b class='flag-5'>python</b><b class='flag-5'>對(duì)比</b><b class='flag-5'>華為</b><b class='flag-5'>設(shè)備</b><b class='flag-5'>配置</b><b class='flag-5'>是否</b><b class='flag-5'>改變</b>

    如何配置華為eNSP模擬器設(shè)備路由的ssh登錄

    本博文主要講解了如何配置華為eNSP模擬器設(shè)備路由的ssh登錄,以便自動(dòng)化應(yīng)用可以更好的控制管
    的頭像 發(fā)表于 10-25 09:31 ?1100次閱讀
    如何<b class='flag-5'>配置</b><b class='flag-5'>華為</b><b class='flag-5'>eNSP</b><b class='flag-5'>模擬器</b><b class='flag-5'>設(shè)備</b>路由<b class='flag-5'>器</b>的ssh登錄