我的要求是从客户端连接到telnet服务器,并使用nodejs在服务器计算机上运行命令。
以下是我正在使用的代码:
const net = require("net");
const cp = require("child_process");
net.connect({host: 192.168.192.136, port:23}, function() {
console.log("connected");
cp.exec('pwd', (err, stdout, stderr) => {
if (err) {
console.error(err);
return;
}
console.log(stdout);
});
});
有了这个,我可以连接到服务器但是当我使用cp.exec
运行命令时,它在本地机器上运行而不是在连接的服务器上。
1)连接后如何在服务器上运行该命令?
2)为什么在没有用户名或密码的情况下与服务器建立连接。虽然当我尝试通过终端连接到它时,它会要求输入用户名和密码。
我也尝试过来自npmjs的一些节点js模块,但没有成功。
任何形式的帮助将不胜感激。感谢。
答案 0 :(得分:0)
使用remote-exce模块执行相同操作。 这里链接到文档: - https://www.npmjs.com/package/remote-exec
答案 1 :(得分:0)
然后使用telnet客户端模块 链接到文档 https://www.npmjs.com/package/telnet-client
答案 2 :(得分:0)
在Nodejs v15上,我认为您不需要exec
。我设法通过以下方法建立telnet连接:
const net = require("net");
/*
* establish new client connection to the server
*/
let client = net.connect({
host: "192.168.192.136",
port: 23,
}, ()=> {
console.log("connected");
client.write("TELNET COMMAND HERE", ()=>{
console.log("Command sent!")
})
});
教程参考:https://nodejs.org/api/net.html#net_net_createconnection_options_connectlistener