最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Python網(wǎng)絡(luò)設(shè)備腳本中經(jīng)常使用的connecthandler和telnetlib是什么意思?

你好,這里是網(wǎng)絡(luò)技術(shù)聯(lián)盟站。

在昨天的文章中,有小伙伴提到對這兩天瑞哥提供的Python腳本中涉及的connecthandler和telnetlib兩個(gè)模塊不是太了解,想要學(xué)習(xí)一下:

今天瑞哥就安排上!

其實(shí)這兩個(gè)模塊是Python與網(wǎng)絡(luò)設(shè)備交互最常用的兩個(gè)模塊,當(dāng)然了,還有其他的哈,那么今天我們就針對性的講一下吧,希望不僅僅是“死魚非命”這位小伙伴能夠理解,在看的各位朋友都能理解兩個(gè)模塊該如何使用。

讓我們直接開始!

一、ConnectHandler

Python的Paramiko庫提供了一個(gè)叫做ConnectHandler的模塊,可以簡化SSH連接和命令執(zhí)行的代碼,使得我們能夠更加方便地與網(wǎng)絡(luò)設(shè)備交互。

1.1 ConnectHandler模塊介紹

ConnectHandler模塊是Paramiko庫提供的一個(gè)高級模塊,它封裝了SSH連接、命令執(zhí)行和輸出解析等功能,使得我們能夠更加方便地與SSH服務(wù)器進(jìn)行交互。

通過ConnectHandler模塊,我們可以:

  • 建立SSH連接

  • 發(fā)送命令

  • 獲取輸出結(jié)果

  • 關(guān)閉SSH連接

ConnectHandler模塊支持的設(shè)備類型非常豐富,包括華為、H3C、銳捷、Cisco、Juniper、HP、Fortinet等眾多品牌的設(shè)備。

1.2 使用示例

下面我們來看一個(gè)簡單的使用示例,該示例使用ConnectHandler模塊連接到一個(gè)Cisco路由器,并執(zhí)行一個(gè)命令:

from?netmiko?import?ConnectHandler

#?定義設(shè)備信息
device?=?{
????'device_type':?'cisco_ios',
????'ip':?'192.168.1.1',
????'username':?'username',
????'password':?'password'
}

#?建立SSH連接
with?ConnectHandler(**device)?as?conn:
????#?發(fā)送命令
????output?=?conn.send_command('show?ip?interface?brief')

#?輸出結(jié)果
print(output)

在上面的代碼中,我們首先定義了一個(gè)字典類型的device變量,其中包含了連接設(shè)備的必要信息,比如設(shè)備類型、IP地址、用戶名和密碼等。接著,我們使用ConnectHandler模塊建立SSH連接,并使用with語句來確保連接被正確關(guān)閉。在連接建立后,我們發(fā)送了一個(gè)命令show ip interface brief,并使用send_command方法來執(zhí)行該命令并獲取輸出結(jié)果。最后,我們輸出了命令的輸出結(jié)果。

除了使用send_command方法來發(fā)送單個(gè)命令外,ConnectHandler模塊還提供了一系列其他方法,如send_config_set、send_config_from_file等,可以用于發(fā)送多個(gè)配置命令或從文件中加載配置命令。

1.3 小結(jié)

ConnectHandler模塊是Python Paramiko庫提供的一個(gè)高級模塊,它封裝了SSH連接、命令執(zhí)行和輸出解析等功能,使得我們能夠更加方便地與SSH服務(wù)器進(jìn)行交互。在使用ConnectHandler模塊時(shí),我們只需要提供設(shè)備的必要信息,就可以通過簡單的代碼來實(shí)現(xiàn)SSH連接和命令執(zhí)行。這大大簡化了SSH交互的代碼編寫,提高了我們的工作效率。

二、telnetlib

Python的telnetlib庫提供了一個(gè)telnet客戶端,可以用于與telnet服務(wù)器進(jìn)行交互。

2.1 telnetlib庫介紹

telnetlib庫是Python標(biāo)準(zhǔn)庫中提供的一個(gè)模塊,它提供了一個(gè)telnet客戶端,可以用于與telnet服務(wù)器進(jìn)行交互。

通過telnetlib庫,我們可以:

  • 建立telnet連接

  • 發(fā)送命令

  • 獲取輸出結(jié)果

  • 關(guān)閉telnet連接

2.2 使用示例

下面我們來看一個(gè)簡單的使用示例,該示例使用telnetlib庫連接到一個(gè)telnet服務(wù)器,并執(zhí)行一個(gè)命令:

import?telnetlib

#?定義設(shè)備信息
host?=?'192.168.1.1'
username?=?'username'
password?=?'password'

#?建立telnet連接
tn?=?telnetlib.Telnet(host)

#?登錄
tn.read_until(b'Username:?')
tn.write(username.encode('ascii')?+?b"\n")
tn.read_until(b'Password:?')
tn.write(password.encode('ascii')?+?b"\n")

#?發(fā)送命令
tn.write(b"show?ip?interface?brief\n")
output?=?tn.read_all().decode('ascii')

#?關(guān)閉連接
tn.close()

#?輸出結(jié)果
print(output)

在上面的代碼中,我們首先定義了一些必要的設(shè)備信息,如telnet服務(wù)器的IP地址、用戶名和密碼等。接著,我們使用telnetlib.Telnet類建立telnet連接,并使用read_until方法和write方法登錄到服務(wù)器。在登錄后,我們使用write方法發(fā)送了一個(gè)命令show ip interface brief,并使用read_all方法獲取輸出結(jié)果。最后,我們關(guān)閉了telnet連接,并輸出了命令的輸出結(jié)果。

除了使用read_all方法來獲取輸出結(jié)果外,telnetlib庫還提供了一系列其他方法,如read_until、read_eager、read_some等,可以用于讀取不同形式的輸出。

2.3 小結(jié)

telnetlib庫是Python標(biāo)準(zhǔn)庫中提供的一個(gè)模塊,它提供了一個(gè)telnet客戶端,可以用于與telnet服務(wù)器進(jìn)行交互。通過telnetlib庫,我們可以實(shí)現(xiàn)telnet連接的建立、命令的發(fā)送和輸出結(jié)果的獲取等功能。在使用telnetlib庫時(shí),我們需要使用telnetlib.Telnet類來建立連接,并使用相應(yīng)的方法來執(zhí)行操作和獲取輸出結(jié)果。

三、總結(jié)

本文給大家介紹了兩個(gè)重要的知識點(diǎn):

  • ConnectHandler

  • telnetlib

ConnectHandler和telnetlib在Python體系的范圍中是有差距的:

可以看到ConnectHandler屬于Paramiko庫的一個(gè)高級模塊,而telnetlib是Python標(biāo)準(zhǔn)庫中提供的一個(gè)模塊,這個(gè)我們需要注意一下。

怎么樣,這下理解了嗎?


Python網(wǎng)絡(luò)設(shè)備腳本中經(jīng)常使用的connecthandler和telnetlib是什么意思?的評論 (共 條)

分享到微博請遵守國家法律
闽清县| 潜江市| 桦川县| 耒阳市| 施甸县| 柏乡县| 马尔康县| 柘荣县| 临漳县| 元江| 安福县| 色达县| 嘉鱼县| 靖江市| 云浮市| 二手房| 贵定县| 珲春市| 堆龙德庆县| 英山县| 响水县| 宁乡县| 环江| 辽源市| 江津市| 丽水市| 屯门区| 寻乌县| 犍为县| 神池县| 赤水市| 都昌县| 阳朔县| 屏东市| 黎川县| 蒙阴县| 平定县| 宜兰县| 茂名市| 盐池县| 长寿区|