无法使用nodejs在telnet登录中输入密码

Posted

技术标签:

【中文标题】无法使用nodejs在telnet登录中输入密码【英文标题】:can't enter password in telnet login with nodejs 【发布时间】:2014-04-24 00:04:48 【问题描述】:

如果我从 windows 命令行 telnet 没有问题:

> telnet telehack.com
(... wait until a '.' appears)
. login
username? example
password? (examplepass) * * * * * * * 

Logged...
(...)
@ (This is the prompt when you are logged)

因此,我可以使用 shell 登录并执行所有操作,使用为 nodejs 编写的 javascript 代码除了输入密码之外,我可以执行所有操作。然后我能够:连接到主机+端口,输入'login'命令,输入'example'用户名(实际存在),当我尝试输入'examplepass'(实际上也存在)时,telnet服务器回答我'* * * * * * *' 但我无法跳过那一步。我会提供代码,感谢任何帮助。

var net = require('net');
var conn = net.createConnection(23, 'telehack.com');

conn.setEncoding('utf-8');

conn.on('connect', function()   
  console.log('connected to the server');

  conn.on('data', function(data) 
    console.log('' + data);
    if (data.indexOf('username') != -1) 
      conn.write('example\r\n');
    
    if (data.indexOf('pass') != -1) 
      conn.write('examplepass\r\n');
    
    if (data.indexOf("@") != -1) 
      conn.write('date\r\n');
    
    if (data.slice(-1) == '.')
      console.log('slice: '+data.slice(-1));
      //conn.emit('login');
      conn.write('login\r\n');

    
  );
);

【问题讨论】:

【参考方案1】:

Check this out.

var net = require('net');
var client = net.connect(parseInt(process.argv[3]),process.argv[2],function()
    client.setEncoding('utf8');
    console.log('Connected!!');
    client.on('data',function(chunk)
        console.log(chunk);
    );
    process.stdin.resume(); // Activate STDIN
    process.stdin.setEncoding('utf8'); // Set it to string encoding
    process.stdin.on('data',function(chunk) // Pipe STDIN to Socket.out
        client.write(chunk);
    );
);

您必须重新启用标准输入并将任何数据从标准输入发送到套接字。

【讨论】:

哦,感谢您的解决方案。这个确切的情况是由于非谈判。问题是,在那个确切的 Telnet 服务器中,您需要协商通信参数:ECHO、WINDOW SIZE ......所以我需要实现协商。感谢您的努力! @ederollora 你打赌。您应该发布解决您问题的答案,以便遇到相同问题的人知道如何解决他们的问题。 好吧,明天做。也许不是最好的解决方案,但我会分享它。

以上是关于无法使用nodejs在telnet登录中输入密码的主要内容,如果未能解决你的问题,请参考以下文章

输入两个登录密码的Python telnet脚本?

使用Telnet无法登录到H3C交换机

升级win10 后登录界面无法输入密码,密码输入框输不进去任何值,求助!!

xp无故出现登录界面

验证码错误无法读取cookie 不管我有没有输密码和验证码都出现这提示

Telnet 使用用户名和密码登录到邮件服务器