Python 官方文档:入门教程 => 点击学习
最近要使用python做一个在WEB上管理交换机的程序,需要远程登录,就查了点资料,由于还没有搞到交换机,就先用自己的机器测试一下。 首先Python的标准库中包含telnet,用起来也很方便,查看一下文档写了个小程序: #!/usr/
最近要使用python做一个在WEB上管理交换机的程序,需要远程登录,就查了点资料,由于还没有搞到交换机,就先用自己的机器测试一下。
首先Python的标准库中包含telnet,用起来也很方便,查看一下文档写了个小程序:
#!/usr/bin/env python
#coding=utf-8
import telnetlib
host = "127.0.0.1"
userName = 'root'
passWord = '123456'
enter = '\n'
t = telnetlib.Telnet(host)
t.read_until("login: ",1)
t.write(userName + enter)
t.read_until("Password: ",1)
t.write(password + enter)
t.write("ls"+enter)
t.write("exit"+enter)
print t.read_all()
Last login: Wed Nov 2 14:51:36 on console
shi-kefumatoiMac:~ root# .CFUserTextEncoding .subversion Library
.forward .viminfo nat.sh
.sh_history .vimrc noc
shi-kefumatoiMac:~ root# loGout
telnet很好用,但是总是有人喜欢更强大更好用的程序,于是就有了pexpect,pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块。 Pexpect 的使用范围很广,可以用来实现与 ssh、ftp 、telnet 等程序的自动交互;可以用来自动复制软件安装包并在不同机器自动安装;还可以用来实现软件测试中与命令行交互的自动化。
看了写资料,也用pexpect写了一个小程序,实现刚才同样的功能:
#!/usr/bin/env python
#coding=utf-8
import pexpect
address = '127.0.0.1'
userName = 'root'
password = '123456'
cmd = 'telnet ' + address
prompt = '[$#>]'
child = pexpect.spawn(cmd)
index = child.expect(['login',pexpect.EOF,pexpect.TIMEOUT],timeout=1)
if index == 0:
child.sendline(userName)
index = child.expect('Password',timeout=1)
child.sendline(password)
child.expect(prompt,timeout=1)
child.sendline('ls')
child.expect('ls',timeout=1)
child.expect(prompt,timeout=1)
print child.before
else:
print 'expect "login",but get EOF or TIMEOUT'
child.close()
输出结果:
.CFUserTextEncoding .subversion Library
.forward .viminfo nat.sh
.sh_history .vimrc noc
shi-kefumatoiMac:~ root
python文档:Http://docs.python.org/library/telnetlib.html
IBM developerWorks: http://www.ibm.com/developerworks/cn/linux/l-cn-pexpect1/
http://www.ibm.com/developerworks/cn/linux/l-cn-pexpect2/
--结束END--
本文标题: 使用python远程登录
本文链接: https://lsjlt.com/news/189577.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0