Python Telnetlib模块连接网络设备
# -*- coding: UTF-8 -*-
import telnetlib
import time
import datetime
import os
import json Username=
Password=
ip=
enable_passwd=
file='/opt/test.txt' def connect(ip, username, password, enable_passwd):
tn = telnetlib.Telnet(ip.encode('utf-8'))
tn.read_until('Username: ') # 用户名
tn.write(username.encode('utf-8') + '\n')
tn.read_until('Password: ') # 密码
tn.write(password.encode('utf-8') + '\n')
tn.write('enable' + '\n')
tn.read_until('Password: ') #enable 模式
tn.write(enable_passwd.encode('utf-8') + '\n')
if tn.read_until('#'):
tn.write('terminal length 0' + '\n')
print '登录成功'
time.sleep(1)
tn.write('configure terminal' + '\n') # 进入设置模式
time.sleep(1)
return tn def split_res(info):
info = info.strip().split('\r\n')[1:-1]
return '\n'.join(info) def run_command(tn, command):
print '开始执行命令: {}'.format(command)
tn.write(command + '\n')
time.sleep(3)
strs = split_res(tn.read_very_eager())
return strs def main(file):
with open(file[0], 'r') as f:
command_list = f.readlines()
client = connect(ip, Username, Password, enable_passwd)
for lien in command_list:
print lien.split("\n")[0]
res = run_command(client, lien.split("\n")[0]) # 执行配置下发
print res
print "执行完成"
return True if __name__ == '__main__':
main(file)
Python Telnetlib模块连接网络设备的更多相关文章
- Python MySQLdb模块连接操作mysql数据库实例_python
mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql ...
- Python的telnetlib模块使用
telnetlib模块的常用接口 telnetlib.Telnet(host, port, timeout) # 登录 write() # 输入命令 read_until(match) # 读出响应, ...
- 用Python怎么SSH到网络设备
0. 前言 自上一篇文章<用python怎么telnet到网络设备>,简单使用了telnetlib库给大家演示了下,但是,现实环境中仍不建议去使用telnet. SSH(Secure Sh ...
- 用Python怎么telnet到网络设备
0.前言 Telnet协议属于TCP/IP协议族里的一种,对于我们这些网络攻城狮来说,再熟悉不过了,常用于远程登陆到网络设备进行操作,但是,它的缺陷太明显了,就是不安全,信息明文传送,极容易被攻击窃取 ...
- python 各模块
01 关于本书 02 代码约定 03 关于例子 04 如何联系我们 1 核心模块 11 介绍 111 内建函数和异常 112 操作系统接口模块 113 类型支持模块 114 正则表达式 115 语言支 ...
- Python标准模块--import
1 模块简介 作为一个Python初学者,你首先要学会的知识就是如何引入其它模块或者包.但是,我发现有些开发者虽然使用Python很多年,依然不了解Python引入机制的灵活性.这篇文章,我们就会研究 ...
- Python标准模块--logging
1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...
- Python Paramiko模块与MySQL数据库操作
Paramiko模块批量管理:通过调用ssh协议进行远程机器的批量命令执行. 要使用paramiko模块那就必须先安装这个第三方模块,仅需要在本地上安装相应的软件(python以及PyCrypto), ...
- Python::OS 模块 -- 文件和目录操作
os模块的简介参看 Python::OS 模块 -- 简介 os模块的进程管理 Python::OS 模块 -- 进程管理 os模块的进程参数 Python::OS 模块 -- 进程参数 os模块中包 ...
- python 常用模块(转载)
转载地址:http://codeweblog.com/python-%e5%b8%b8%e7%94%a8%e6%a8%a1%e5%9d%97/ adodb:我们领导推荐的数据库连接组件bsddb3:B ...
随机推荐
- 【个人笔记】CentOS 安装 Docker CE
要在 CentOS 上开始使用 Docker CE,请确保 满足先决条件,然后 安装Docker. 1. 卸载旧版本 sudo yum remove docker docker-client dock ...
- Angular JS入门 (一)事件监听(二)多控制器思想与模块化编程(三)路由router
Angular JS入门 ️将流式结构--->模块化 一.事件监听 1.事件监听 前言 NG框架中通过对元素标签添加[ng-事件名] 指令,来对元素添加事件监听 而事件监听的回调函数需要在con ...
- 微信小程序隐私指引完整填写范本(开发者收集你选中的照片或视频信息,用于?)
为了分辨用户,开发者将在获取你的明示同意后,收集你的微信昵称.头像.为了显示距离,开发者将在获取你的明示同意后,收集你的位置信息.开发者收集你的地址,用于获取位置信息.开发者收集你的发票信息,用于维护 ...
- @Async 注解的使用
1.@Async介绍 在Spring中,基于@Async标注的方法,称之为异步方法:这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作 例如, 在某个调用中, ...
- 用“餐厅打包”的故事说明白Python里面的自定义函数
注:博主并非Python专业程序员,年龄12岁,Python龄不到1岁,才疏学浅,如有错误还请大佬指教! 希望能通过本专栏帮助到一些Python小白! 嗨~大家好!上篇博文咱们说了,万一有一些上万行才 ...
- 如何在eclipse里的动态Web项目建立后缀为xml的文件
1.右击Dynamic Web Project类型项目的WEB-INF->new->Other->XML,选择XML File2 点击next改名字为web(后缀不要动哦)3. 点击 ...
- 使用 FreeSSL 申请免费证书
官网 https://freessl.cn/ 首先,注册一个账户 然后登录 输入自己的域名,选择第2个"亚洲诚信"(1年),然后点击"创建免费SSL证书"按钮 ...
- VP做弹出窗体:查询数据并回传
1.父页面VP定义传递数据:VP属性:DataContractMembrs 传递参数1:销售订单,用于给到子页面 传递参数2:表格行,用户子页面回传回来父页面(定义为None,通过代码来写进父页面表格 ...
- vue 中 表单数据为数组,v-for 循环表单数据
element-ui 中,表单数据一般为对象,但是也有是数组的情况,比如上面图示:账号和密码可以是多个,点击添加会增加一条,点击删除会删除一条 表单数据为 form:{ accounts:[ { ac ...
- [笔记]gdb调试中一个string变量太长,如何将该string变量完全输出在屏幕上?
来自 https://stackoverflow.com/questions/233328/how-do-i-print-the-full-value-of-a-long-string-in-gdb ...