Chinaunix

标题: 通过python来做个简单的telnet客户端工具 [打印本页]

作者: riverbird2005    时间: 2009-03-22 00:50
标题: 通过python来做个简单的telnet客户端工具


首先声明一下,下面的代码是从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是一个非常有用的函数,可以用来模拟读取某个命令返回值的操作.

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/15586/showart_1871224.html




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2