0.5.3 • Published 1 year ago

mikro-client v0.5.3

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

mikro-client

This library, written in TypeScript and also compatible with JavaScript, provides a simple connection via TCP sockets to send and receive command-line commands from MikroTik. With this library, you can easily and quickly control and get information from a MikroTik device.

version documentation in:

  • English
  • Spanish

Installation

npm install mikro-client

or

yarn add mikro-client

Usage

To use the class, you must first import it into your project:

import { MikroClient } from 'mikro-client'

Then, you can create a new instance of the class by providing the necessary configuration options:

const options = {
  host: 'XXX.XXX.XXX.XXX',
  port: XXXX,
  username: 'xxxxx',
  password: 'xxxxx',
  timeout: 5000,
}
const mikro = new MikroClient(options)

Once you have an instance of the class, you can use the "talk" method to send MikroTik commands to the device and receive the response:

const response = await mikro
  .talk(['/interface/print'])
  .then((response) => {
    console.log(response)
  })
  .catch((error) => {
    console.error(error)
  })

You can also specify the type of response you want to receive using the optional "type" argument:

const response = await mikro
  .talk(['/interface/print'], 'object')
  .then((response) => {
    console.log(response)
  })
  .catch((error) => {
    console.error(error)
  })

Examples

Here are some examples of MikroTik commands that you can send using the "talk" method:

  • Get network interface information:
const response = await mikro
  .talk(['/interface/print'])
  .then((response) => {
    console.log(response)
  })
  .catch((error) => {
    console.error(error)
  })
  • Add a firewall rule:
mikro
  .talk([
    '/ip/firewall/filter/add',
    '=chain=forward',
    '=protocol=tcp',
    '=dst-port=80',
    '=action=accept',
  ])
  .then((response) => {
    console.log(response)
  })
  .catch((error) => {
    console.error(error)
  })
  • Get connected user information:
mikro
  .talk(['/ip/hotspot/active/print'])
  .then((response) => {
    console.log(response)
  })
  .catch((error) => {
    console.error(error)
  })
  • Create a hotspot user:
mikro
  .talk([
    '/ip/hotspot/user/add',
    '=name=example',
    '=password=example',
    '=profile=default',
  ])
  .then((response) => {
    console.log(response)
  })
  .catch((error) => {
    console.error(error)
  })

Information

For more information on the MikroTik commands that you can send using the MikroApi class, we recommend consulting the MikroTik documentation, which is available at the following link:

  • API - RouterOS - MikroTik Documentation

On this page, you will find a complete list of available MikroTik commands and their respective parameters. You will also find examples of how to use these commands in the MikroTik command line and API.

I hope this helps you get more information on MikroTik commands and how to use them with the MikroApi class. If you have any additional questions, don't hesitate to ask.


License

  • MIT

Created by jjjjose - 2022