码迷,mamicode.com
首页 > 编程语言 > 详细

用python 脚本控制telnet登录交换机

时间:2017-07-14 10:12:32      阅读:3949      评论:0      收藏:0      [点我收藏+]

标签:python   ssh   telnet   

目的:学习用python脚本登录交换机并执行相关操作


环境:windows 7  Python 3.5.3


最初原因是因为工作需要在交换机上查询IP地址的来源端口,不停的跳转查看很麻烦,于是决定写脚本,这里只写关于用Python登录和之后的可用方法。


telnet是内置模块,模块名telnetlib。


# 定义登录的用户名、密码和登录的设备地址

username = ‘abc‘

password = ‘123‘

switch_ip = ‘1.2.3.4‘


# 连接

tel_con = telnetlib.Telnet(switch_ip[, port=23, timeout=10])

# 读取识别并认证

tel_con.read_until(‘Username:‘)

tel_con.write(username + rn)

tel_con.read_until(‘Password:‘)

tel_con.write(password + rn)


下面就可以执行需要的操作,一般是识别‘>‘这个符号,当然要根据实际情况,视图模式就可能是其他的了,而且read_until可能有时候在执行命令返回的不匹配,则一直在等待,可以使用read_all()返回所以的然后用正则表达式,或用延时time.sleep加read_very_eager()的方法。


最后记得要退出,交换机里退出用quit,连接退出用

tel_con.close()


这里还有几个小技巧:

1)设置返回除错信息可以排除问题tel_con.set_debuglevel(5),这里有0-5的等级,数字越大,信息越多。

2)有些情况传递给write方法的字符串需要注意编码

3)read_until()有一个超时设置,超过时间会返回,否则脚本会一直等待

4)read_all()可能得不到EOF而报错。

5)有需要可以学习第三方模块pexpect,它可以实现ssh, telnet, ftp等交互式自动登录

这里有一些参考资料:

http://www.cnblogs.com/ma6174/archive/2012/05/25/2508378.html

http://blog.csdn.net/oatnehc/article/details/46580753

https://pypi.python.org/pypi/paramiko

https://pypi.python.org/pypi/pexpect


 

本文出自 “RickyHuL” 博客,请务必保留此出处http://rickyh.blog.51cto.com/10934856/1947362

用python 脚本控制telnet登录交换机

标签:python   ssh   telnet   

原文地址:http://rickyh.blog.51cto.com/10934856/1947362

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!