每个人,你好!
我目前正在尝试使用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的连接打开,因为可能还有其他数据(或重复数据)如果我退出并重新登录,我将会丢失。
有谁知道怎么做?
答案 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()