Python telnet客户端

时间:2016-10-12 16:20:03

标签: python telnet telnetlib

每个人,你好!

我目前正在尝试使用Telnetlib(https://docs.python.org/2/library/telnetlib.html)与Python 2.7进行通信。

我已经设置了基础知识:

import sys
import telnetlib
tn_ip = xxxx
tn_port = xxxx
tn_username = xxxxx
tn_password = xxxx

searchfor = "Specificdata"

def telnet():
    try:
        tn = telnetlib.Telnet(tn, tn, 15)
        tn.set_debuglevel(100)
        tn.read_until("login: ")
        tn.write(tn_username + "\n")
        tn.read_until("Password: ")
        tn.write(tn_password + "\n")
        tn.read_until(searchfor)
        print "Found it!"
    except:
        print "Unable to connect to Telnet server: " + tn_ip

telnet()

我试图查看它输出的所有数据(这是非常多的),直到我抓住我需要的东西。虽然它登录得非常好,甚至找到了我正在寻找的数据,并打印出我发现它的消息,但我试图找到一种方法来保持与telnet的连接打开,因为可能还有其他数据(或重复数据)如果我退出并重新登录,我将会丢失。

有谁知道怎么做?

1 个答案:

答案 0 :(得分:2)

好像你想要连接到外部设备一次,并在每次看到特定字符串时打印一条消息。

import sys
import telnetlib
tn_ip = "0.0.0.0"
tn_port = "23"
tn_username = "xxxxx"
tn_password = "xxxx"

searchfor = "Specificdata"


def telnet():
    try:
        tn = telnetlib.Telnet(tn_ip, tn_port, 15)
    except:
        print "Unable to connect to Telnet server: " + tn_ip
        return
    tn.set_debuglevel(100)
    tn.read_until("login: ")
    tn.write(tn_username + "\n")
    tn.read_until("Password: ")
    tn.write(tn_password + "\n")
    while True:
        tn.read_until(searchfor)
        print "Found it"

telnet()