网络工程师自动化之Python入门到放弃—telnet

放弃之路0x01 Python模块telnetlib

● 使用telnet登陆远程交换机进行配置(提别提醒,telnetlib在windows环境有问题,显示不出结果)

安装模块:
pip3 install telnetlib 和 loguru(日志模块)
# coding=utf-8
import telnetlib
from loguru import logger
# 先导入模块

host = '192.168.56.100'
# user = 'h3c'   # 用户名
password = 'admin'  # 密码

tn = telnetlib.Telnet(host)
# tn.read_until(b'Username: ') # 如果有用户名就填写,我这里没有。
# tn.write(user.encode('ascii') + b'\n') # 如果有用户名就填写,我这里没有。
tn.read_until(b'Password: ')
tn.write(password.encode('ascii') + b'\n')

tn.write(b'screen-length disable\n') 
# 这条命令可以使所有配置一次打出来,如果没有这条命令打印出来的结果只有小部分。
# 华为使用 screen-length 0 temporary
tn.write(b'sys\n')
tn.write(b'dis ip int br\n')
# tn.write(b'sa\n')  # 如果是配置命令记得保存噢!
tn.write(b'return\n')
tn.write(b'exit\n')

a = tn.read_all().decode('ascii')
logger.info(a)

回显效果:
在这里插入图片描述

● 下面配置多台交换机

1、如果几个ip用列表还可以,如果成百上千在用列表就不行了。(例:['192.168.56.100','192.168.56.200'])
2、这里使用txt文本,先创建ip_list.txt的文本文件,里面存入需要登陆的IP。
3、使用open打开ip_list.txt,读入里面的IP地址。(with open打开的txt文件不需要在使用close关闭)
4、使用for循环对所有交换机执行命令。
# coding=utf-8
import telnetlib
# from loguru import logger

with open('ip_list.txt', encoding='utf-8') as f: # 打开ip_list.txt
    for i in f:
        host = i.strip() # strip函数是为了消除IP地址后面的\n
        password = 'admin'

        tn = telnetlib.Telnet(host)
        tn.read_until(b'Password: ')
        tn.write(password.encode('ascii') + b'\n')

        tn.write(b'sys\n')
        tn.write(b'dis ip int br\n')
        tn.write(b'return\n')
        tn.write(b'exit\n')

        print(tn.read_all().decode('ascii'))
        # tn.close()  # 关闭连接,可以不需要

使用readlines函数读出来发现结尾有个“\n”,使用strip函数消除“\n”
在这里插入图片描述

回显效果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值