无法telnet从linux pc到windows pc“登录失败错误”

时间:2013-05-15 06:26:19

标签: python telnet pexpect

我正在尝试从Linux远程登录到Windows PC,但它显示错误“登录失败”。

这是我的Python脚本。我正在使用pexpect模块。我也试过telnetlib,但同样的错误:

import os
import pexpect,time

        telconn = pexpect.spawn('telnet 192.168.0.105')
        telconn.logfile = open("/tmp/telnetlog", "a")
        time.sleep(30)
        print "connected"
        telconn.expect(':')
        telconn.sendline("user" + "\r")
        #time.sleep(10)
        print "connected user"
        telconn.expect(':')
        password = "user@123"
        #print password
        telconn.sendline(password + "\r")
        time.sleep(60)
        #print "connected password"

错误:

Connected to 192.168.0.105.
Escape character is '^]'.
Welcome to Microsoft Telnet Service 

login: user
password: user@123

The operation completed successfully.

Login Failed

2 个答案:

答案 0 :(得分:1)

@vish 根据Marcin,您可以使用wireshark调试问题。您只是尝试下面提到的代码,因为我已经遇到了同样的问题,我得到了解决方案

import pexpect
import time,sys
telconn = pexpect.spawn('telnet 192.168.0.105')
time.sleep(20)
telconn.logfile = sys.stdout
telconn.expect(":")
time.sleep(20)
telconn.send("user" + "\r")
telconn.expect(":")
telconn.send("user@123" + "\r")
telconn.send("\r\n")
time.sleep(20)
telconn.expect(">")

我希望这会奏效。

答案 1 :(得分:0)

我可以建议一种简单的方法来调试问题。您写道,可以手动登录。如果是这样,请在使用Wireshark手动记录时嗅探telnet消息。启动脚本后再次嗅探。比较2条痕迹。在比较之后,您应该能够告诉脚本telnet消息中缺少的内容。