python通过telnetlib模块远程连接交换机

转载说明:转载请注明出处:http://blog.csdn.net/qq_25134989/article/details/78923564


下面直接上源码


# -*- coding: utf-8 -*-

import telnetlib
import time


def telnetip(tnip):
    # 连接Telnet服务器
    tn = telnetlib.Telnet(tnip, port=23, timeout=50)
    # 输入登录用户名
    tn.read_until('Username:')
    tn.write(username + '\n')

    # 输入登录密码
    # tn.read_until('Password:')
    tn.write(password + '\n')
    time.sleep(1)
    tn.write('system' + '\n')  # 输入命令
    tn.write('domain paoa' + '\n')
    tn.write('****' + '\n')
    tn.write('****' + '\n')
    time.sleep(50)
    result1 = tn.read_very_eager()  # 获得结果
    print result1
    # 命令执行完毕后,终止Telnet连接(或输入exit退出)
    tn.close()  # tn.write('exit\n')

if __name__ == '__main__':
    # 配置选项
    ip = '****'  # Telnet交换机IP
    username = '****'  # 登录用户名
    password = '****'  # 登录密码
    telnetip(ip)


下面是telnetlib模块的API用法(中文版)(来源:http://python.usyiyi.cn/documents/python_352/library/telnetlib.html)


源代码: Lib/telnetlib.py

telnetlib模块提供了实现Telnet协议的Telnet类。有关协议的详细信息,请参见 RFC 854此外,它为协议字符(见下文)和telnet选项提供符号常量。telnet选项的符号名称遵循arpa/telnet.h中的定义,删除了前导TELOPT_对于传统上不包括在arpa/telnet.h中的选项的符号名称,请参阅模块源本身。

telnet命令的符号常量有:IAC,DONT,DO,WONT,WILL,SE(子协议结束),NOP(无操作),DM(数据标记),BRK中止输出),AYT(您有),EC(擦除字符),EL(擦除线),GA(前进),SB(子协商开始)。

class telnetlib.Telnet(host=Noneport=0[timeout])

Telnet表示到Telnet服务器的连接。实例最初未默认连接;必须使用open()方法建立连接。或者,主机名和可选端口号也可以传递给构造函数,在这种情况下,将在构造函数返回之前建立与服务器的连接。可选的timeout参数指定阻塞操作(如连接尝试)的超时(以秒为单位)(如果未指定,将使用全局默认超时设置)。

不要重新打开已连接的实例。

这个类有许多read_*()方法。注意,当读取连接结束时,其中一些引发EOFError,因为它们可能由于其他原因返回一个空字符串。请参阅下面的各个说明。

也可以看看

RFC 854 - Telnet协议规范
Telnet协议的定义。

21.19.1.Telnet对象

Telnet实例具有以下方法:

Telnet.read_until(expectedtimeout=None)

读取直到遇到预期的给定字节字符串,或直到超时秒过去。

当找不到匹配项时,返回可用的可用空间,可能为空字节。如果连接已关闭且没有可用的已处理过的数据,则引发EOFError

Telnet.read_all()

读取所有数据,直到EOF为字节;阻塞直到连接关闭。

Telnet.read_some()

读取至少一个字节的处理过的数据,除非命中EOF。如果命中EOF,返回b''如果没有可用的数据,则阻止。

Telnet.read_very_eager()
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值