繁体   English   中英

使用 JavaScript 进行 Telnet 连接

[英]Telnet connection with JavaScript

我正在使用 Numato 中继,我尝试使用带有 net.Socket 的 javascript 通过 telnet 连接到它,然后发送命令。

但是,当尝试连接时,它拒绝用户名和密码。 问题是输入用户名后输入了奇怪的字符。

在代码中,您可以看到我尝试以各种方式查看输出,但没有结果。

如果有人知道原因或使用过 Numato 模块,我将不胜感激。 这是代码及其输出:

    var net = require('net');

    var client = new net.Socket();

    client.connect(23, '192.168.1.100', function() {
      console.log('Connected');
    });
    client.on('connect', function(){
      client.write('admin\n')
      client.write('admin\n')
      // client.write('admin\n' + 'admin\n')
    })

    client.on('data', function(data) {
      console.log(''+data)
      // var datos = []
      // datos.push(data)
      // datos.push(data.toJSON)
      // console.log(datos)
      // client.destroy(); // kill client after server's response
    });

    client.on('close', function() {
      console.log('Connection closed');
    });

输出图像

根据Numato 文档,此通道需要 ASCII 字符编码,而不是您发送的 UTF 编码字符串。

改变:

    client.on('connect', function(){
      client.write('admin\n')
      client.write('admin\n')
      // client.write('admin\n' + 'admin\n')
    })

到:

    client.on('connect', function(){
      client.write('admin\n', 'ascii')
      client.write('admin\n', 'ascii')
      // client.write('admin\n' + 'admin\n')
    })

注意:eol 的回答可能也适用于此。 如果您使用的是 Windows(此处假设),则您将同时需要\\r\\n

当我尝试通过 NodeJS 与 telnet 服务器通信时,我遇到了类似的问题。 解决我的问题是在换行符之前使用回车符:

client.write('admin\r\n');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM