Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8304037
  • 博文数量: 1413
  • 博客积分: 11128
  • 博客等级: 上将
  • 技术积分: 14685
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-13 10:03
个人简介

follow my heart...

文章分类

全部博文(1413)

文章存档

2013年(1)

2012年(5)

2011年(45)

2010年(176)

2009年(148)

2008年(190)

2007年(293)

2006年(555)

分类: Python/Ruby

2009-03-22 00:50:06

首先声明一下,下面的代码是从python2.6的chm上面取来了略作修改而来的,但是有了这个例子,我想加上其它的函数注解,很容易让我以后方便的进行开发的.
python中提供了telnetlib,可以非常方便的来进行telnet服务的访问.费话不说,直奔主题,看下例子先:

#coding:utf8

import getpass
import sys
import telnetlib

HOST = "192.168.1.103"
user = raw_input("Enter your remote account: ")
password = getpass.getpass()

tn = telnetlib.Telnet(HOST)

tn.read_until("login: ")
tn.write(user + "\n")
if password:
    tn.read_until("Password: ")
    tn.write(password + "\n")

tn.write("ls\n")
tn.write("exit\n")

print tn.read_all()


这段代码设定的server为linux操作系统,我在fedora服务器下面调试没任何问题,如果你的telnet服务器是其它如windows或是其它网络设备,则可能要做些改动了.下面有些看法和建议:
1).对于所有的访问服务最好加上超时参数,如telnetlib.Telnet及read_until等,加上参数的话会让程序更加健壮.
2).write命令为向服务端发送或输入命令.
3).read_until为预期获取给定的字符串.
4).read_all会读取整个命令操作中的返回值,直到eof,不过只有在连接中断时才能返回值.
5).read_very_eager是一个非常有用的函数,可以用来模拟读取某个命令返回值的操作.
阅读(4535) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~