Python-Telnet连接工具类

使用telnetlib模块进行telnet连接的工具类

import telnetlib
from time import sleep

class Telnet_Class:
    """Telnet_Class"""
    hostIP = 'root'
    TCP_Port = 23
    timeOut = 60
    def __init__(self, hostIP='', TCP_Port=23, timeOut=60):
        self.hostIP = hostIP
        self.TCP_Port = TCP_Port
        self.timeOut = timeOut
    def getConnectObject(self):
        """获取,并打开Telnet连接"""
        try:
            return telnetlib.Telnet(self.hostIP,self.TCP_Port,self.timeOut)
        except Exception:
            raise Exception("Get Telnet Connect Object Failed!")

    def closeTelnetObject(self, telnetObject):
        """关闭Telnet连接"""
        try:
            telnetObject.close()
            return True
        except Exception :
            raise Exception("Close Telnet Connect Object Failed!")
        finally:
            return None
    def executeTelnetCommands(self, telnetObject, My_Commands):
        """必须是已经登录成功的才可以执行命令"""
        if My_Commands:
            for command in My_Commands:
                telnetObject.write(command.encode())
                print(telnetObject.read_until(b'#').decode())
                sleep(1)
            return True
        else:
            return None
    def telnetLogin(self, telnetObject, userName, passWord):
        """执行登录,不同服务存在不同差异,使用时请注意修改"""
        sleep(1)
        telnetObject.write(userName.encode())
        print(telnetObject.read_until(b':').decode())
        sleep(1)
        telnetObject.write(passWord.encode())
        print(telnetObject.read_until(b'#').decode())
        sleep(1)

if __name__ == '__main__':
    """连接示例"""
    My_Commands=['\r\n','\r\n','ls\r\n','\r\n','\r\n']
    TelnetClass = Telnet_Class(hostIP='192.168.0.2')
    telnetobject = TelnetClass.getConnectObject()
    TelnetClass.telnetLogin(telnetobject,'root\r\n','root\r\n')
    TelnetClass.executeTelnetCommands(telnetobject,My_Commands)
    TelnetClass.closeTelnetObject(telnetobject)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值