欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中SSH遠程登錄設備的實現方法

 更新時間:2022年04月29日 09:20:24   作者:renkie人可毅  
本文主要介紹了python中SSH遠程登錄設備,python中支持SSH協議的模塊主要有Paramiko和netmiko兩種,本文主要介紹了netmiko模塊,具有一定的參考價值,感興趣的可以了解一下

python中支持SSH協議的模塊主要有Paramiko和netmiko兩種,本次實驗采用netmiko模塊。

netmikko模塊為python的第三方模塊,需要使用pip來下載安裝。(聯網的情況下)

下載完畢后,進入Python 3.10解釋器,如果import netmiko沒有報錯,則說明Netmiko安裝成功。

實驗拓撲

將ensp的LSW1與本地虛擬網卡loopback0進行橋接,模擬將自己的電腦橋接到以下拓撲網絡中。

實驗目的:

通過netmiko模塊的SSH逐一登錄4臺交換機LSW2-LSW5,并依次為其配置STP,默認模式為MSTP。

實驗腳本

完整代碼

from  netmiko import ConnectHandler
for i in range(20,24):
    SW={
        'device_type':'huawei',
        'ip':'10.0.1.'+str(i),
        'username':'python',
        'password':'123456',
        }
    connect=ConnectHandler(**SW)
    print('\n'+'-----------------'+'成功登錄到交換機'+SW['ip']+'-----------------')
    config_commands=['stp mode stp','dis stp | include CIST Global Info']
    output=connect.send_config_set(config_commands)
    print(output)
    connect.save_config()

1.從netmiko模塊導入它的鏈接庫函數ConnectHandler(),用于實現SSH登錄網絡設備。

from  netmiko import ConnectHandler

2.創(chuàng)建一個字典SW,該字典包含'device_type'、'ip'、'username'、'password'四個必選值。'device_type'用于指定設備類型,這里我們用的是華為的設備,所以'device_type'為'huawei'。

for i in range(20,24):
    SW={
        'device_type':'huawei',
        'ip':'10.0.1.'+str(i),
        'username':'python',
        'password':'123456',
        }

由于我們這里要登陸四臺設備,所以要用for循環(huán)。

3.調用ConnectHandler()函數,借用for循環(huán),對字典SW進行SSH連接,將他賦值給變量connect,注意SW2前面的**作為標識。

connect=ConnectHandler(**SW)

在Python的在形參前加'*'和'**'表示動態(tài)形參

在形參前加'*'表示可以接受多個實參值存進數組

對于在形參前加'**'表示表示接受參數轉化為字典類型

4.如果SSH登錄成功,則提示成功登錄

  print('\n'+'-----------------'+'成功登錄到交換機'+SW['ip']+'-----------------')

5.創(chuàng)建一個名為config_commands的列表為參數,其元素為需要在交換機上執(zhí)行的命令。

config_commands=['stp mode stp','dis stp | include CIST Global Info']

6.然后以剛剛創(chuàng)建的config_commands的列表為參數,調用ConnectHandler()的send_config_set()函數來使用上述命令對SW做配置,并將配置過程打印出來。

output=connect.send_config_set(config_commands)
print(output)

7.最后用save_config()保存設備配置

 connect.save_config()

實驗結果

從以上結果可知,netmiko額外替我們輸入了:system view和return。 

代碼優(yōu)化

如果有大量的交換機其管理ip地址也沒什么規(guī)律性,此時直接用for循環(huán)管理ip地址來登錄設備,就不再那么靈活和使用了。此時我們可以把所有交換機的ip地址都放入都放入一個文件名為ip_list的文件,通過for循環(huán)readlines()來讀取文件中的每行ip地址,來逐臺登錄設備。

 完整腳本

from  netmiko import ConnectHandler
with open('ip_list.txt') as f:
    for line in f.readlines():
        host=line.strip()
        SW={
            'device_type':'huawei',
            'ip':host,             #host是變量,不要粗心加了引號
            'username':'python',
            'password':'123456',
            }
        connect=ConnectHandler(**SW)
        print('\n'+'-----------------'+'成功登錄到交換機'+SW['ip']+'-----------------')
        config_commands=['stp mode stp','dis stp | include CIST Global Info']
        output=connect.send_config_set(config_commands)
        print(output)
        connect.save_config()

注意:ip_list要和python腳本在一個文件夾。

結果 

 到此這篇關于python中SSH遠程登錄設備的文章就介紹到這了,更多相關python中SSH遠程登錄設備內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 淺析pytorch中對nn.BatchNorm2d()函數的理解

    淺析pytorch中對nn.BatchNorm2d()函數的理解

    Batch Normalization強行將數據拉回到均值為0,方差為1的正太分布上,一方面使得數據分布一致,另一方面避免梯度消失,這篇文章主要介紹了pytorch中對nn.BatchNorm2d()函數的理解,需要的朋友可以參考下
    2023-11-11
  • 程序員的七夕用30行代碼讓Python化身表白神器

    程序員的七夕用30行代碼讓Python化身表白神器

    轉眼又到了咱們中國傳統的情人節(jié)七夕了,今天筆者就帶大家來領略一下用Python表白的方式,感興趣的朋友跟隨小編一起看看吧
    2019-08-08
  • python得到一個excel的全部sheet標簽值方法

    python得到一個excel的全部sheet標簽值方法

    今天小編就為大家分享一篇python得到一個excel的全部sheet標簽值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • EM算法的python實現的方法步驟

    EM算法的python實現的方法步驟

    本篇文章主要介紹了EM算法的python實現的方法步驟,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Jupyter notebook 不自動彈出網頁的解決方案

    Jupyter notebook 不自動彈出網頁的解決方案

    這篇文章主要介紹了Jupyter notebook 不自動彈出網頁的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python中的二分查找Bisect庫使用實戰(zhàn)

    Python中的二分查找Bisect庫使用實戰(zhàn)

    在算法和數據結構中,二分查找是一種高效的搜索算法,可用于有序數據集合的查找,Python的bisect庫為我們提供了便捷的二分查找實現,本文將深入探討B(tài)isect庫的使用方法、性能優(yōu)勢,并通過豐富的示例代碼展示其在實際應用中的靈活性和效果
    2024-01-01
  • 解決python3爬蟲無法顯示中文的問題

    解決python3爬蟲無法顯示中文的問題

    下面小編就為大家分享一篇解決python3爬蟲無法顯示中文的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 淺談keras中的batch_dot,dot方法和TensorFlow的matmul

    淺談keras中的batch_dot,dot方法和TensorFlow的matmul

    這篇文章主要介紹了淺談keras中的batch_dot,dot方法和TensorFlow的matmul,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python中的print()輸出

    python中的print()輸出

    print() 方法用于打印輸出,最常見的一個函數。這篇文章主要介紹了python的print()輸出 ,需要的朋友可以參考下
    2019-04-04
  • 基于Python的ModbusTCP客戶端實現詳解

    基于Python的ModbusTCP客戶端實現詳解

    這篇文章主要介紹了基于Python的ModbusTCP客戶端實現詳解,Modbus Poll和Modbus Slave是兩款非常流行的Modbus設備仿真軟件,支持Modbus RTU/ASCII和Modbus TCP/IP協議 ,經常用于測試和調試Modbus設備,觀察Modbus通信過程中的各種報文,需要的朋友可以參考下
    2019-07-07

最新評論