如何通过 Nodejs WebSocket 连接到 RouterOS?
How to connect to RouterOS via Nodejs WebSocket?
我正在学习websocket nodejs,我想像https://github.com/aluisiora/node-routeros/包一样通过websocket连接到routeros,包太宽泛了,我只想知道如何连接。
我已经阅读了官方文档https://wiki.mikrotik.com/wiki/Manual:API,但我无法理解它。
我已经尝试过这种方式,但没有得到任何回应:
client.connect(port, host, function () {
console.log("Connected");
client.write(encodeString("/login"));
client.write(encodeString(`=name=${user}`));
client.write(encodeString(`=password=${password}`));
});
client.on("data", function (data) {
console.log("Received: " + data); // not excetue
});
我正在寻找通过 nodejs 套接字连接到 routeros 的代码示例,希望有人在这里分享。
提前致谢,非常感谢您的回答。
考虑接下来的事情:
- RouterOS API 有自己的协议,有点复杂。 official wiki 告诉我们如何在 LOW LEVEL 与它交互。由于这些原因,很难理解。不适用于 高级 程序员。别担心,我们都经历过这里。
- Routeros v7 有一个 REST API,这将使工作更容易,交换语言是 HTTP 协议,容易吧?实际上在
beta
阶段。
- RouterOS Wiki 有其他 node.js 的包,看起来更简单:Mikronode
解决方案
安装mikronode
包
$ npm install mikronode
使用它:
var api = require('mikronode');
var connection = new api('192.168.0.1','admin','password');
connection.connect(function(conn) {
var chan=conn.openChannel();
chan.write('/ip/address/print',function() {
chan.on('done',function(data) {
var parsed = api.parseItems(data);
parsed.forEach(function(item) {
console.log('Interface/IP: '+item.interface+"/"+item.address);
});
chan.close();
conn.close();
});
});
});
我正在学习websocket nodejs,我想像https://github.com/aluisiora/node-routeros/包一样通过websocket连接到routeros,包太宽泛了,我只想知道如何连接。
我已经阅读了官方文档https://wiki.mikrotik.com/wiki/Manual:API,但我无法理解它。
我已经尝试过这种方式,但没有得到任何回应:
client.connect(port, host, function () {
console.log("Connected");
client.write(encodeString("/login"));
client.write(encodeString(`=name=${user}`));
client.write(encodeString(`=password=${password}`));
});
client.on("data", function (data) {
console.log("Received: " + data); // not excetue
});
我正在寻找通过 nodejs 套接字连接到 routeros 的代码示例,希望有人在这里分享。
提前致谢,非常感谢您的回答。
考虑接下来的事情:
- RouterOS API 有自己的协议,有点复杂。 official wiki 告诉我们如何在 LOW LEVEL 与它交互。由于这些原因,很难理解。不适用于 高级 程序员。别担心,我们都经历过这里。
- Routeros v7 有一个 REST API,这将使工作更容易,交换语言是 HTTP 协议,容易吧?实际上在
beta
阶段。 - RouterOS Wiki 有其他 node.js 的包,看起来更简单:Mikronode
解决方案
安装mikronode
包
$ npm install mikronode
使用它:
var api = require('mikronode');
var connection = new api('192.168.0.1','admin','password');
connection.connect(function(conn) {
var chan=conn.openChannel();
chan.write('/ip/address/print',function() {
chan.on('done',function(data) {
var parsed = api.parseItems(data);
parsed.forEach(function(item) {
console.log('Interface/IP: '+item.interface+"/"+item.address);
});
chan.close();
conn.close();
});
});
});