色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

怎么使用python提取華為交換機(jī)的接口IP信息保存到excel中呢?

網(wǎng)絡(luò)技術(shù)干貨圈 ? 來源:CSDN ? 2024-01-13 16:37 ? 次閱讀

實(shí)驗(yàn)環(huán)境:

85023260-b1ee-11ee-8b88-92fbcf53809c.png

如圖所示,SW1-SW5上分別已經(jīng)配置了SSH,使用外部PC可以SSH到其中。

在本次實(shí)驗(yàn)中,主要使用了如下三個(gè)模塊:

openpyxl,對(duì)excel文件進(jìn)行操作。

gevent,使用協(xié)程,同時(shí)對(duì)五臺(tái)設(shè)備進(jìn)行操作。

napalm-huawei-vrp,SSH到交換機(jī),并提取格式化信息

python代碼:

fromnapalmimportget_network_driver
fromopenpyxlimportWorkbook
fromopenpyxl.stylesimportColor,PatternFill,Font,Border,Side
importgevent
fromgeventimportmonkey
frompprintimportpprint

monkey.patch_all()

#設(shè)置模板為華為的vrp操作系統(tǒng)
driver=get_network_driver('huawei_vrp')
#定義5臺(tái)設(shè)備的IP地址,如果IP過多的話,可以通過數(shù)據(jù)庫(kù)或者txt文件保存并讀取
devices_ip=['192.168.0.11','192.168.0.22','192.168.0.33','192.168.0.44','192.168.0.55']


defcollect_basic_info(ip,fill,border):
print("start:",ip)
try:
SW=driver(ip,'prin','Huawei@123')
SW.open()
print(ip+'連接成功')

#獲取設(shè)備基礎(chǔ)信息
basic_info=SW.get_facts()
#pprint(basic_info)
#提取其中的hostname信息
hostname=basic_info.get('hostname')

#獲取設(shè)備接口三層信息
interfaces_ip_info=SW.get_interfaces_ip()
#pprint(interfaces_ip_info)
#返回設(shè)備名稱和接口IP信息

#在excel文件中,創(chuàng)建以hostname命名的sheet
ws=wb.create_sheet(hostname)
#設(shè)置此sheet中記錄數(shù)據(jù)的類別
ws['A1']='Interfaces'
ws['B1']='IP'
ws['C1']='Mask'
#設(shè)置背景顏色
ws['A1'].fill=fill
ws['B1'].fill=fill
ws['C1'].fill=fill
#創(chuàng)建要寫入數(shù)據(jù)的列表
interfaces_list=[]
ip_addr_list=[]
mask_list=[]

#根據(jù)pprint(interfaces_ip_info)的打印信息,進(jìn)行處理,提取接口名稱、IP地址、MASK保存到當(dāng)前sheet中
forkey,valuesininterfaces_ip_info.items():
interfaces_list.append(key)

forip,maskinvalues['ipv4'].items():
ip_addr_list.append(ip)
mask_list.append(mask.get('prefix_length'))

#得到插入數(shù)據(jù)的行數(shù),n+2的原因是因?yàn)閞ange是左開右閉,并且excel的第一行也已經(jīng)寫入了數(shù)據(jù)類型(A1、B1、C1)
row_numbers=[n+2forninrange(len(interfaces_list))]

#對(duì)excel當(dāng)前sheet中指定的cell進(jìn)行賦值
forinterface,rowinzip(interfaces_list,row_numbers):
ws.cell(row=row,column=1,value=interface)
forip_addr,rowinzip(ip_addr_list,row_numbers):
ws.cell(row=row,column=2,value=ip_addr)
formask,rowinzip(mask_list,row_numbers):
ws.cell(row=row,column=3,value=mask)

#調(diào)整列的寬度(自適應(yīng)數(shù)據(jù)長(zhǎng)度),保證excel文件的美觀性,首先創(chuàng)建一個(gè)名為dims的空字典
dims={}
#ws1.rows返回值的類型為生成器generator,其中包含每一排和每一列有交集的所有單元格
#(每一排中至少有一個(gè)單元格為非空),比如(A1,B1),(A2,B2),(A3,B3)
forrowinws.rows:
#遍歷每一排元組里的每一個(gè)元素(即單元格A1,B1,A2,B2,A3,B3)
forcellinrow:
#為每一個(gè)單元添加邊框
cell.border=border
#如果單元格內(nèi)容為非空,則用max()比較每一列下最長(zhǎng)的字符,比如從A1和A2,A3相比較,B1和B2,B3相比較
ifcell.value:
#cell.column_letter返回的值是單元格所在的列的名稱,其數(shù)據(jù)類型為字符串,比如A1,A2,A3返回'A',B1,B2,B3則返回'B'。
#第一次故意用dims.get(cell.column,0)返回一個(gè)0,因?yàn)榇藭r(shí)dims字典下還沒有cell.column這個(gè)鍵名,
#字典的的get()函數(shù)在鍵名缺失的情況下會(huì)返回第二個(gè)我們給定的參數(shù),即這里的0。
dims[cell.column_letter]=max((dims.get(cell.column_letter,0),len(str(cell.value))))

#遍歷字典里的鍵值對(duì),以每一排寬度最長(zhǎng)的單元格作為自動(dòng)調(diào)整單元格長(zhǎng)度的標(biāo)準(zhǔn),
#長(zhǎng)度+1以確保列的寬度超過最長(zhǎng)單元格的寬度
forcol,valueindims.items():
ws.column_dimensions[col].width=value+1

exceptExceptionase:
print(e)
print("end:",ip)


if__name__=='__main__':
#調(diào)用Openpyxl創(chuàng)建Workbook對(duì)象,用來創(chuàng)建一個(gè)workbook,并將它賦值給變量wb
wb=Workbook()
#定義表格中的背景顏色和樣式
yellowFill=PatternFill(start_color='FFFF00',end_color='FFFF00',fill_type='solid')
thin_border=Border(left=Side(style='thin'),right=Side(style='thin'),top=Side(style='thin'),
bottom=Side(style='thin'))

#同時(shí)執(zhí)行5個(gè)任務(wù)
tasks=[gevent.spawn(collect_basic_info,ip,yellowFill,thin_border)foripindevices_ip]
all_result=gevent.joinall(tasks)

#刪除掉默認(rèn)的Sheet
ws=wb["Sheet"]
wb.remove(ws)
#查看存在哪些表
print(wb.sheetnames)
#保存excel信息
wb.save('huawei_interface_ip_info.xlsx')

pycharm運(yùn)行結(jié)果:

850c53b2-b1ee-11ee-8b88-92fbcf53809c.png

查看Excel上的最終結(jié)果:

851b28ce-b1ee-11ee-8b88-92fbcf53809c.png







審核編輯:劉清

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

    關(guān)注

    0

    文章

    189

    瀏覽量

    16359
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4799

    瀏覽量

    84820
  • 華為交換機(jī)
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    6312

原文標(biāo)題:使用python提取華為交換機(jī)的接口IP信息保存到excel中(ensp模擬器)

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基礎(chǔ)知識(shí):理解網(wǎng)絡(luò)交換機(jī)的原理

    域內(nèi),也就是說,交換機(jī)不隔絕廣播(惟一的例外是在配有VLAN的環(huán)境)。   3.交換機(jī)依據(jù)幀頭的信息進(jìn)行轉(zhuǎn)發(fā),因此說交換機(jī)是工作在數(shù)據(jù)鏈路
    發(fā)表于 04-13 14:30

    交換機(jī)接口類型,交換機(jī)各種類型接口圖片及介紹

    交換機(jī)接口及連接圖解交換機(jī)在我們的印象是作為局域網(wǎng)節(jié)點(diǎn)連接的網(wǎng)絡(luò)設(shè)備,其實(shí)它也在廣域網(wǎng)存在,并且得到大量應(yīng)用,特別是電信運(yùn)營(yíng)企業(yè)
    發(fā)表于 05-03 23:05

    華為路由器交換機(jī)VLAN配置實(shí)例

    華為路由器交換機(jī)VLAN配置實(shí)例[hide]華為路由器交換機(jī)VLAN配置實(shí)例使用4臺(tái)PC(pc多和少,原理是一樣的,所以這里我只用了4臺(tái)pc),華為
    發(fā)表于 05-25 00:21

    交換機(jī)VLAN是如何實(shí)現(xiàn)的

      交換機(jī)自動(dòng)配置Port為主機(jī)所屬的VLAN。這里有三種分類:基于MAC,基于IP,基于用戶  3、基于MAC的VLAN(例如二層交換機(jī))  將所有主機(jī)的硬件地址都加入到VALN的管理數(shù)據(jù)庫(kù)
    發(fā)表于 01-12 16:16

    什么是交換機(jī)間系統(tǒng)接口(ISSI)

    什么是交換機(jī)間系統(tǒng)接口(ISSI) 交換機(jī)間系統(tǒng)接口(ISSI: Inter-Switching System Interface) 交換機(jī)
    發(fā)表于 11-27 08:47 ?1437次閱讀

    交換機(jī)接口配置

    交換機(jī)接口配置
    發(fā)表于 12-27 16:49 ?0次下載

    華為交換機(jī)

    華為交換機(jī)
    發(fā)表于 03-24 14:17 ?5次下載

    python巡檢華為交換機(jī)

    SSH登錄到各個(gè)交換機(jī)收集軟件版本、CPU、內(nèi)存利用率和硬件狀態(tài)信息
    的頭像 發(fā)表于 12-30 09:13 ?1381次閱讀

    如何提取Word文檔表格保存到Excel

    據(jù)提取Excel。例如,提取word文檔的財(cái)務(wù)數(shù)據(jù)、考勤數(shù)據(jù)等,將數(shù)據(jù)存儲(chǔ)到 Excel
    的頭像 發(fā)表于 02-24 16:00 ?2832次閱讀
    如何<b class='flag-5'>提取</b>Word文檔表格<b class='flag-5'>保存到</b><b class='flag-5'>Excel</b>

    華為交換機(jī)如何批量清除接口配置信息

    華為交換機(jī)如何批量清除接口配置信息
    的頭像 發(fā)表于 08-14 10:43 ?3173次閱讀

    一臺(tái)交換機(jī)有哪些接口?每個(gè)接口都有哪些作用?

    一臺(tái)交換機(jī)有哪些接口?每個(gè)接口都有哪些作用? 一臺(tái)交換機(jī)擁有多種接口,每個(gè)
    的頭像 發(fā)表于 11-17 14:23 ?6492次閱讀

    使用python批量備份華為交換機(jī)配置文件

    保證PC能分別和五臺(tái)交換機(jī)通信。五臺(tái)交換機(jī)IP地址如圖上所示。
    的頭像 發(fā)表于 01-19 09:28 ?1477次閱讀
    使用<b class='flag-5'>python</b>批量備份<b class='flag-5'>華為</b><b class='flag-5'>交換機(jī)</b>配置文件

    交換機(jī)怎么配置IP地址

      在構(gòu)建和管理網(wǎng)絡(luò)架構(gòu)交換機(jī)作為核心設(shè)備之一,其IP地址的配置是確保網(wǎng)絡(luò)正常運(yùn)行的重要步驟。正確配置交換機(jī)IP地址,可以使得網(wǎng)絡(luò)設(shè)備
    的頭像 發(fā)表于 06-06 11:16 ?1.2w次閱讀

    使用Python腳本備份華為交換機(jī)的配置信息

    在現(xiàn)代網(wǎng)絡(luò)管理,備份交換機(jī)的配置信息是一項(xiàng)至關(guān)重要的任務(wù)。備份可以確保在交換機(jī)發(fā)生故障或配置錯(cuò)誤時(shí),能夠迅速恢復(fù)到之前的工作狀態(tài)。本文將詳細(xì)介紹如何使用
    的頭像 發(fā)表于 08-12 17:50 ?618次閱讀
    使用<b class='flag-5'>Python</b>腳本備份<b class='flag-5'>華為</b><b class='flag-5'>交換機(jī)</b>的配置<b class='flag-5'>信息</b>

    華為交換機(jī)的各種接口模式

    華為交換機(jī)接口模式種類繁多,功能強(qiáng)大,能夠滿足不同網(wǎng)絡(luò)環(huán)境下的需求。本文將詳細(xì)介紹華為交換機(jī)的各種接口
    的頭像 發(fā)表于 08-12 18:04 ?1535次閱讀
    主站蜘蛛池模板: 亚洲精品无码不卡在线播HE| 中文字幕人成人乱码亚洲影视 | 亚洲综合中文字幕无线码| 雪恋电影完整版免费观看| 亚洲国产中文在线视频| 亚洲中文字幕一二三四区苍井空| 玉林天天论坛| 99精品久久| 高干紧射H后入| 国产亚洲制服免视频| 久久AV国产麻豆HD真实| 麻豆成人AV久久无码精品| 欧美精品一区二区在线电影 | 国产SUV精品一区二区69| 国产日韩精品一区二区三区在线| 娇妻归来在线观看免费完整版电影| 久久久久婷婷国产综合青草| 男人J进女人P| 善良的小峓子2在钱中文版女主角 善良的小峓子2在钱免费中文字 | 视频在线观看高清免费看| 午夜片神马影院福利| 国产色情短视频在线网站| 花季v3.0.2黄在线观看| 麻豆AV福利AV久久AV| 人人爽久久久噜噜噜丁香AV| 午夜aaaa| 在线免费观看视频a| 播色屋97超碰在人人| 国产偷窥盗摄一区二区| 久久是热频国产在线| 披黑人猛躁10次高潮| 鸭子玩富婆流白浆视频| 最近中文字幕高清中文| 粉嫩AV国产一区二区福利姬| 久久国产精品免费网站| 欧美性受xxxx狂喷水| 无码国产成人午夜在线观看不卡| 一个人免费完整观看日本| jizz黑丝| 九九热在线视频| 欧美亚洲天堂网|