HCIA-Datacom实验指导手册:8 网络编程与自动化基础

HCIA-Datacom实验指导手册:8 网络编程与自动化基础

  • 一、实验介绍:
  • 二、实验拓扑:
  • 三、实验目的:
  • 四、配置步骤:
    • 步骤 1 完成交换机的 Telnet 预配置
    • 步骤 2 Python 代码编写
  • 五、结果验证
  • 六、windows 计划任务程序配置
  • 七、 思考题与附加内容

一、实验介绍:

通过本实验,读者将掌握 Python telnetlib 库的常用方法。

二、实验拓扑:

在这里插入图片描述

三、实验目的:

1.编写ypthon文件使用python的telnetlib库登录AR1,并执行save和tftp上传配置文件到管理电脑。
2.使用windows的计划任务,每5分钟执行一次上面的python文件。

四、配置步骤:

步骤 1 完成交换机的 Telnet 预配置

[ar 1-aaa]di th
[V200R003C00]
#
aaa 
 local-user huawei password cipher %$%$AV.6:XB(fVje3N0:Ky_,,^';%$%$
 local-user huawei privilege level 15
 local-user huawei service-type telnet
#
return
[ar 1-aaa]  

[Huawei]telnet server enable 
Info: The Telnet server has been enabled.

user-interface vty 0 4
 authentication-mode aaa
 protocol inbound  telnet 

步骤 2 Python 代码编写

#导入 telnetlib和time库。
import telnetlib
import time
host = '192.168.30.100' #路由器的管理ip地址
username = 'huawei' #定义telnet账号
password = 'Huawei@123' #定义telnet密码
tn = telnetlib.Telnet(host) #登陆 host='192.168.56.101'的设备,然后将telnetlib.Telnet(host)赋值给 tn。
tn.read_until(b"Username:") #read_until方法表示:读到什么为止。这里表示读到显示Username:为止。b表示将 Python3 中默认的 unicode 编码变为 bytes。
tn.write(username.encode('ascii') + b'\n') #写入字符串’huawei'。username.encode('ascii') 表示转换 username 代表的字符串“huawei”的编码类型为 ASCII
tn.read_until(b"Password:")
tn.write(password.encode('ascii') + b"\n")
tn.write(b'save 123.cfg\ny\ny\ntftp 192.168.30.1 put 123.cfg 2222.cfg\n') #先使用save命令保持配置文件,然后输入第一个y确认,第二个y确认覆盖。最后使用tftp 192.168.30.1 put 123.cfg 2222.cfg上传配置文件到192.168.30.1。
time.sleep(3) #上传配置文件需要一定时间,这里设置程序等待3秒后再执行后面的命令。
tn.write(b'screen-length 0 temporary\n display cu \n') #
time.sleep(3)
print(tn.read_very_eager().decode('ascii')) #print()表示显示括号内的内容到控制台。tn.read_very_eager()表示读取当前的尽可能多的数据。. decode('ascii'))表示将读取的数据解码为 ASCII。
tn.close() #调用 close()关闭当前会话。设备 vty 连接数量有限,在执行完脚本后需要关闭此 telnet 会话。

五、结果验证

C:\ProgramData\anaconda3\python.exe C:\myrepository\HCIA实验\telnet登录设备并备份配置文件.py 
C:\myrepository\HCIA实验\telnet登录设备并备份配置文件.py:2: DeprecationWarning: 'telnetlib' is deprecated and slated for removal in Python 3.13
  import telnetlib

  -----------------------------------------------------------------------------     
  User last login information:     
  -----------------------------------------------------------------------------
  Access Type: Telnet      
  IP-Address : 192.168.30.1     
  Time       : 2024-03-02 21:54:55-08:00     
  -----------------------------------------------------------------------------
<ar 1>save 123.cfg
 Are you sure to save the configuration to 123.cfg? (y/n)[n]:y
 flash:/123.cfg exists, overwrite? (y/n)[n]:y
  It will take several minutes to save configuration file, please wait......
  Configuration file had been saved successfully
  Note: The configuration file will take effect after being activated
<ar 1>tftp 192.168.30.1 put 123.cfg 2222.cfg
Info: Transfer file in binary mode.
Uploading the file to the remote TFTP server. Please wait...

TFTP: Uploading the file successfully.
    1027 bytes send in 1 second.
<ar 1>screen-length 0 temporary
Info: The configuration takes effect on the current user terminal interface only.
<ar 1> display cu 
[V200R003C00]
#
 sysname ar 1
#
 snmp-agent local-engineid 800007DB03000000000000
 snmp-agent 
#
 clock timezone China-Standard-Time minus 08:00:00
#
portal local-server load portalpage.zip
#
 drop illegal-mac alarm
#
 set cpu-usage threshold 80 restore 75
#
aaa 
 authentication-scheme default
 authorization-scheme default
 accounting-scheme default
 domain default 
 domain default_admin 
 local-user admin password cipher %$%$K8m.Nt84DZ}e#<0`8bmE3Uw}%$%$
 local-user admin service-type http
 local-user huawei password cipher %$%$AV.6:XB(fVje3N0:Ky_,,^';%$%$
 local-user huawei privilege level 15
 local-user huawei service-type telnet
#
firewall zone Local
 priority 15
#
interface GigabitEthernet0/0/0
 ip address 192.168.30.100 255.255.255.0 
#
interface GigabitEthernet0/0/1
#
interface GigabitEthernet0/0/2
#
interface NULL0
#
user-interface con 0
 authentication-mode password
user-interface vty 0 4
 authentication-mode aaa
user-interface vty 16 20
#
wlan ac
#
return
<ar 1>

Process finished with exit code 0

六、windows 计划任务程序配置

触发器:选择windows系统启动时开始计划任务。
在这里插入图片描述
操作:选择要定时执行的后缀为.py的python文件
在这里插入图片描述
最后确认时需要选择使用哪个windows账号和密码来执行。

七、 思考题与附加内容

  1. 如何使用 telnetlib 配置设备,例如配置设备管理接口地址?
    答:使用write(b’')写入相关的配置即可。
  2. 如何保存配置文件到本地目录?
    答:使用ftp、sftp、tftp都可以实现,上面我演示的是tftp。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/423406.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大数据权限认证 Kerberos 部署

文章目录 1、什么是 Kerberos2、Kerberos 术语和原理2.1、Kerberos 术语2.1、Kerberos 原理 3、Kerberos 服务部署3.1、前置条件3.2、安装依赖3.3、配置 krb5.conf3.4、配置 kdc.conf3.5、配置 kadm5.acl3.6、安装 KDC 数据库3.7、启动服务3.8、创建 Kerberos 管理员3.9、创建普…

qsort的使用与实现

c语言常见的排序方法大概有这些&#xff0c;今天我们所讲的是就是qsort快排的讲解 头文件 qsort的使用 我们先使用msdn查看他的相关资料&#xff0c;得知这个函数的传参请情况 1.void *base 翻译过来就是将要排序的函数的起始位置/数组首元素地址 2.size_t num 翻译过来就是数…

vue项目获取拼音首字母

工具包 pinyin-pro npm install pinyin-pro 官方地址 pinyin-pro | pinyin-pro性能优异、转换准确的 js 中文转拼音工具https://pinyin-pro.cn/示例代码(获取每个汉字的拼音首字母) import {pinyin} from pinyin-pro;function getPinyinInitial(name){if (name) {let py p…

redis实战笔记汇总

文章目录 1 NoSQL入门概述1.1 能干嘛&#xff1f;1.2 传统RDBMS VS NOSQL1.3 NoSQL数据库的四大分类1.4 分布式数据库CAP原理 BASE原则1.5 分布式集群简介1.6 淘宝商品信息的存储方案 2 Redis入门概述2.1 是什么&#xff1f;2.2 能干嘛&#xff1f;2.3 怎么玩&#xff1f;核心…

高性能MySQL 第4版

第一章MySQL架构 MySQL提供了多种锁的颗粒度&#xff0c;每种MySQL存储引擎都可以实现自己的锁策略和锁力度。 行级锁是在存储引擎而不是在服务器中实现的。 隔离界别 READ UNCOMMITTED - 脏读 在事务中可以可以查看到其他事务中还没有提交的修改。实际中很少用。 READ C…

运筹学_1.1.4 线性规划问题-解的概念

1.1.4 线性规划问题-解的概念 一、可行解与最优解二、基的概念三、基变量、基向量&#xff1b;非基变量、非基向量&#xff1b;基解、基可行解&#xff1b;四、最优解与可行解、基可行解的关系五、用例题&#xff08;枚举法&#xff09;巩固基解、基可行解、最优解三个概念1、例…

鸿蒙Harmony应用开发—ArkTS声明式开发(点击事件)

组件被点击时触发的事件。 说明&#xff1a; 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 onClick onClick(event: (event: ClickEvent) > void) 点击动作触发该回调。 卡片能力&#xff1a; 从API version 9开始…

【python】`assert`断言语句

assert是一个断言语句&#xff0c;用于在代码中检查某个条件是否为真。 如果条件为假&#xff0c;将触发AssertionError 异常&#xff0c;从而指示存在错误。

【博图TIA-Api】通过Excel自动新建文件夹和导入FB块

【博图TIA-Api】通过Excel自动新建文件夹和导入FB块 说明思路准备获取Excel表格内文件名和FB块名等信息新建文件夹部分筛分获取的文件夹数据&#xff0c;去掉重复内容创建文件夹 导入FB块导出FB块的xml文件查找需要放置的文件夹导入块 说明 续上一篇文章&#xff0c;这次是根据…

C++ //练习 10.19 用stable_partition重写前一题的程序,与stable_sort类似,在划分后的序列中维持原有元素的顺序。

C Primer&#xff08;第5版&#xff09; 练习 10.19 练习 10.19 用stable_partition重写前一题的程序&#xff0c;与stable_sort类似&#xff0c;在划分后的序列中维持原有元素的顺序。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim …

【buuctf-gakki】

binwalk 查看图片&#xff0c;发现有 rar 文件&#xff0c;提取后如上图所示&#xff08;flag.txt为已经解压后出来的&#xff09;其中这个 rar 需要用 archpr爆破一下 打开后一个 flag.txt 一堆杂乱无章的字符&#xff0c;需要用到 python 脚本进行词频统计&#xff0c;我们…

专家教你学汽车美容护理,汽车美容师职业技能教学

一、教程描述 本套汽车美容教程&#xff0c;大小2.52G&#xff0c;61个文件。 二、教程目录 01-大家跟我学汽车美容&#xff08;共30课时&#xff09; 02-汽车内外饰物的安装&#xff08;共15课时&#xff09; 03-汽车必需设施的安装&#xff08;共13课时&#xff09; 04…

测开新手:pytest+requests+allure自动化测试接入Jenkins学习

最近在这整理知识&#xff0c;发现在pytest的知识文档缺少系统性&#xff0c;这里整理一下&#xff0c;方便后续回忆。 在python中&#xff0c;大家比较熟悉的两个框架是unittest和pytest&#xff1a; Unittest是Python标准库中自带的单元测试框架&#xff0c;Unittest有时候…

图论 - Trie树(字符串统计、最大异或对)

文章目录 前言Part 1&#xff1a;Trie字符串统计1.题目描述输入格式输出格式数据范围输入样例输出样例 2.算法 Part 2&#xff1a;最大异或对1.题目描述输入格式输出格式数据范围输入样例输出样例 2.算法 前言 本篇博客将介绍Trie树的常见应用&#xff0c;包括&#xff1a;Trie…

实验室记账项目(java+Mysql+jdbc)

前言&#xff1a; 因为自己学习能力有限和特殊情况必须要找一个项目来做&#xff0c;但是上网搜的那些项目有两种&#xff08;一种是技术太多&#xff0c;自己能力不够&#xff1b;一种是技术太少&#xff0c;项目太简单&#xff09;导致都不适合本人&#xff0c;本人现有技术只…

店务管理系统:都有哪些功能,是否是高效管理店面的神器

hello&#xff0c;我是贝格前端工场&#xff0c;直接给大家介绍了各类通用的B端管理系统&#xff0c;受到了大家的欢迎。本次开始介绍针对具体行业的管理系统该如何设计和开发&#xff0c;这次分享——店务管理系统&#xff0c;欢迎大家持续关注、点赞&#xff0c;如有系统定制…

使用python实现一个SCP小工具

源码地址&#xff1a; ssh_scp 工具截图&#xff1a; 一个简易的scp文件上传下载小工具&#xff0c;用来上传或下载一些小文件。 目前只适用于windows&#xff0c; 使用方法&#xff1a; 前提&#xff1a; 工具同级目录&#xff0c;创建一个ssh_commands.json文件。用来存储配…

网络攻防之CVE-2020-15778漏洞的复现及修复详细过程

目录 漏洞描述 实验环境 漏洞复现 漏洞修复 漏洞扩展 漏洞描述 (1)漏洞编号:CVE-2020-15778 (2)CVE官网对该漏洞的解释 (3)漏洞简介:2020年6月9日,研究人员Chinmay Pandya在Openssh中发现了一个漏洞,于7月18日公开。OpenSSH的8.3p1中的scp允许在scp.c远程功能中注入命…

Sqli-labs靶场第14关详解[Sqli-labs-less-14]

Sqli-labs-Less-14 #手工注入 post传参了 根据题目看&#xff0c;像一个登录页面&#xff0c;尝试使用布尔型盲注测试能否登录网站 1. Username输入a" 测试是否会有报错&#xff0c;burp抓包 报错&#xff1a;syntax to use near "a"" and password&q…

【Java文件报错】Cannot resolve symbol ‘println‘ 【及解决】

一、问题描述 在Java源代码文件中&#xff0c;使用 System.out.println() 语句进行输出&#xff0c;编译器提示“Cannot resolve symbol ‘println’&#xff08;无法解释关键字&#xff09;”, println飘红。报错代码及报错截图如下所示。 import java.io.*;public class St…