簡體   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