簡體   English   中英

用python連接telnet

[英]connect telnet with python

我嘗試將bbs與python的庫“ telnetlib”連接,嘗試使機器人來回答

消息。 當我回答該消息時,機器人返回了多於一條消息。這些是我的

碼。

# -*- coding: cp950 -*-
import telnetlib,random
#f= open("ans.txt","r")
ans = [b"oao", b"xd"]
'''while True:
line = f.readline()
if line = "":
    break
ans.append(line)
'''

tn = telnetlib.Telnet("ptt.cc")
tn.read_very_eager()
tn.write(b"*****\r\n")  # this is where i enter my username
tn.read_very_eager()
tn.write(b"*****\r\n")  # this is wher i enter my password
tn.read_very_eager()
tn.write(b"\r\n")

while True:
if tn.read_very_eager() != "" :
    tn.write(b"")
    tn.read_very_eager()
    tn.write(b"su\r\n")
    tn.read_very_eager()
    tn.write(b"\r\n")
    tn.read_very_eager()
    tn.write(b"\r\n\r\n←")
    tn.read_very_eager()
    tn.read_very_eager()
    for i in range(0,1000000):
        x = 1

首先,我絕對沒有telnet的經驗。

查看telnetlib上的Python文檔,我可以在docs頁面底部的代碼和示例之間看到一些差異。 主要區別在於它們等待提示登錄或提供密碼。 即使您的read_very_eager 應該做同樣的事情,也更清楚read_until 它可以解決您的問題,或為您提供提示。

嘗試修改示例以適合您的需求。

import sys
import telnetlib

HOST = 'ptt.cc'
user = 'username'
password = 'pass123'

tn = telnetlib.Telnet(HOST)

tn.read_until("login: ")
tn.write(user + "\n")
if password:
    tn.read_until("Password: ")
    tn.write(password + "\n")

# Do anything you need to here.
# If your server will accept these, try them first to isolate the problem
tn.write("ls\n")
tn.write("exit\n")

print tn.read_all()

正如MatthieuW所提到的,您可以在時間庫中入睡。

from time import sleep

print 'Start'
sleep(1)
print 'One second later'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM