Tutorial Laravel Mikrotik API PHP Terlengkap

mikrotik api php

Seiring berkembangnya kebutuhan akan pengelolaan dan pembuatan aplikasi internet mikrotik maka belajar mikrotik API adalah hal wajib yang harus dikuasai bagi staff IT di perusahaan ataupun freelance programmer karena kebutuhan management perangkat mikrotik yang mudah dan simple akan semakin di butuhkan oleh perusahaan dan industri

Pada tutorial kali ini kita akan belajar membuat aplikasi sederhana dengan memanfaatkan api pada mikrotik yang sudah tersedia secara gratis mulai dari router versi 6 dan di versi 7 seharusnya akan sangat powerfull lagi sehingga mengembangkan application mikrotik akan menjadi cepat dan mudah

Apa Itu Mikrotik API ?

Mikrotik API adalah services yang di sediakan oleh mikrotik yang berjalan di port 8291 ( default ) dimana dengan menggunakan services ini kita dapat api memungkinkan programmer mengembangkan aplikasi management jaringan mikrotik berbasi web,desktop ataupun mobile menggunakan bahasa pemograman seperti php ataupun bahasa pemograman lainnya seperti c# ataupun .net

Apa Saja Hardware Dan Software Yang Perlu Di Persiapkan Untuk Belajar API Mikrotik ?

Software yang perlu anda install di laptop atau pc antara lain :

  • Laragon atau WSL2 Dan Docker Desktop ( Pilih Salah Satu )
  • Install Visual Studio Code
  • Fresh Install Laravel Framework
  • Laravel Mikrotik Package Dari EvilFreelance : https://github.com/EvilFreelancer/routeros-api-php
  • Laravel Template Menggunakan LaraStarter Dari Laravel Daily : https://github.com/LaravelDaily/Larastarters ( Template Volt )
  • Bootstrap CSS atau Tailwind CSS ( Di tutorial ini kami menggunakan bootstrap css )
  • Uji coba di artikel ini menggunakan router os v6 namun kedepannya akan kami uji coba di router os mikrotik v7 terbaru

Untuk Hardware ( Optional ) :

  • Satu Unit Perangkat Router Mikrotik

Namun jika anda tidak memiliki perangkat router mikrotik anda dapat menginstall mikrotik secara virtual

Pengetahuan Dasar Yang Dibutuhkan :

  • Memahami Dasar- dasar Laravel
  • Memahami Konfigurasi Dasar Mikrotik CLI\

Video Tutorial Mikrotik API

Mikrotik API

Tutorial Lengkap Mikrotik API PHP Menggunakan Laravel Framework

Silahkan sobat simak tutorial mikrotik api php di bawah ini dengan baik agar sobat dapat memahami bagaimana membangun aplikasi management router mikrotik menggunakan services api mikrotik

Langkah #1 : Cara Instalasi Laravel Framework

pada bagian ini kita akan belajar cara instalasi laravel framework yaitu sebagai berikut :

  • Windows Subsytem Linux Dan Docker Desktop
  • Jalankan Docker Desktop
  • Install Os Linux Yang ingin anda gunakan disini saya menggunakan ubuntu 22.04 LTS
  • Setelah Berhasil buka Windows Terminal
  • Pada Sheel Linux ubuntu Anda silahkan install laravel
  • Perintah Instalasi Laravel : curl -s https://laravel.build/mikrotik-api-youtube | bash
  • tunggu hingga proses instalasi hingga selesai

Keterangan :

  • Mikrotik-api-youtube adalah nama project laravel mikrotik API kita
  • Jika anda menggunakan OS lain Silahkan baca disini untuk dokumentasi instalasi laravelnya

Langkah #2 : Install Laravel Templates untuk Aplikasi API Mikrotik

silahkan ikuti langkah-langkah di bawah ini untuk melakukan instalasi laravel templates :

  • Buka Windows terminal dan pindah ke directory project laravel mikrotik api
  • lalu di shell linux atau command prompt ketik perintah : composer require laraveldaily/larastarters –dev
  • lalu jalankan lagi perintah : php artisan larastarters:install
  • php artisan migrate
  • npm install & npm run dev

Setela mengikuti langkah-langkah diatas seharusnya sobat sudah berhasil melakukan instalasi template aplikasi managemant mikrotik menggunakan laravel

Langkah #3 : Install Laravel Package Mikrotik API

selanjutnya agar lebih memudahkan untuk berinteraksi dengan API mikrotik maka kita perlu melakukan instalasai package laravel untuk mikrotik yaitu sebagai berikut :

  • Buka Windows Terminal WSL2 Sobat
  • Setelah itu ketika perintah : composer require evilfreelancer/routeros-api-php
  • Tunggu hingga proses instalasi selesai
  • Jika sudah selesai maka tahapan selanjutnya adalah menghubungkan laravel dengan api mikrotik

Langkah #4 : Menghubungkan Laravel Dengan Mikrotik API

Agar Aplikasi Web Laravel kita dapat terhubung ke router os mikrotik maka kita perlu memastikan services api di mikrotik tidak di nonaktifkan ( di disabled )

  • Cek Apakah Aplikasi Laravel dapat terhubung dengan mikrotik API sobat caranya klik menu ip Dan Pilih Services, jika tanda mikrotik services anda aktif maka akan centang hijauh dan anda tidak akan takut mati
  • Pastikan Port Mikrotik API Services di buka port api http ( 8728 ) jika menggunakan https aktifkan port ( 8729 )
  • Lalu buka project laravel mikrotik anda menggunakan vscode ( visual studio code )
  • buka file .env dan masukkan authentikasi router mikrotik anda seperti dibawah ini :
#Authentikasi Mikrotik 
host ="192.168.17.1"
user = "mikrotikapi"
pass = "123"

Untuk Lebih jelasnya silahkan lihat gambar di bawah ini :

konfigurasi file env laravel mikrotik api
konfigurasi file env laravel mikrotik api
  • Selanjutnya silahkan buka file config > services.php lalu tambahkan config sevices mikrotik seperti di bawah ini :
  'mikrotik' => [
    'host' => env('host'),
    'user' => env('user'),
    'pass' => env('pass'),
  ],

Untuk Lebih jelasnya silahkan lihat gambar di bawah ini :

config file services
config file services
  • Untuk ujicoba kita buat controller dengan nama : “TestingController”

berikut ini perintah membuat controller di laravel :

php artisan make:controller TestingController

dan pada function index silahkan isi dengan code sbb :

 public function index() {
    // Initiate client with config object
    $client = new Client([
      'host' => config('services.mikrotik.host'),
      'user' => config('services.mikrotik.user'),
      'pass' => config('services.mikrotik.pass'),
    ]);    

    // Create "where" Query object for RouterOS
    $query =
      (new Query('/ip/address/print'));

    // Send query and read response from RouterOS
    $response = $client->query($query)->read();

    return dd ( $response);
  }

Setelah membuat controller jangan lupa tambahkan route dari controller caranya buka file Routes > web.php dan tambahkan baris di bawah ini :

Route::get('/testing', [App\Http\Controllers\TestingController::class, 'index'])->name('testing');

langkah terakhir lakukan uji coba di browser dengan membuka url : http://localhost/testing

Jika tidak ada kendala akan menghasilkan output ip mikrotik yang ada pada router mikrotik kita seperti di bawah ini :

array:3 [▼ // app/Http/Controllers/TestingController.php:29
 0 => array:9 [▼
  ".id" => "*3"
  "address" => "192.168.9.97/24"
  "network" => "192.168.9.0"
  "interface" => "ether1"
  "actual-interface" => "ether1"
  "invalid" => "false"
  "dynamic" => "false"
  "disabled" => "false"
  "comment" => "MODEM"
 ]
 1 => array:9 [▼
  ".id" => "*4"
  "address" => "192.168.17.1/24"
  "network" => "192.168.17.0"
  "interface" => "wlan1"
  "actual-interface" => "wlan1"
  "invalid" => "false"
  "dynamic" => "false"
  "disabled" => "false"
  "comment" => "LAN"
 ]
 2 => array:8 [▼
  ".id" => "*5"
  "address" => "192.168.18.1/24"
  "network" => "192.168.18.0"
  "interface" => "VAP-SECURITY"
  "actual-interface" => "VAP-SECURITY"
  "invalid" => "true"
  "dynamic" => "false"
  "disabled" => "false"
 ]
]

Untuk Detailnya silahkan lihat gambar di bawah ini :

output api mikrotik
output api mikrotik

Dari output diatas kita sudah berhasil menampilkan ip address yang ada pada router mikrotik kita, sehingga dapat kita pastikan aplikasi web laravel kita sudah terhubung dengan mikrotik menggunakan services API Mikrotik

Langkah #5 : Tampilkan Data IP Address Mikrotik Di Aplikasi Web Laravel

Pada langkah ke #4 kita sudah berhasil menghubungkan laravel dengna mikrotik dan di tahap ke-5 ini kita akan menampilkan data ip address di mikrotik ke views aplikasi web laravel agar tampilannya lebih bagus menggunakan tempalate volt berikut caranya :

  • buat views dengan nama “testing.blade.php” pada folder resources > views
  • karena kita menggunakan templates maka kita cukup extends layout tempalatesnya di file testing.blade.php

Berikut ini script lengkap pada view testing.blade.php :  

@extends('layouts.app')

@section('content')
  <div class="main py-4">
    <div class="row">
      <div class="col-12 col-xl-12">
        <div class="col-12 px-0">
          <div class="card border-0 shadow">
            <div class="card-body">
              <h2 class="fs-5 fw-bold mb-1">{{ __('Table IP Address') }}</h2>
              <p>{{ __('Ini Adalah Data IP Address') }}</p>

              <div class="table-responsive">
                <table class="table table-centered table-nowrap mb-0 rounded">
                  <thead class="thead-light">
                    <tr>
                      <th class="border-0 rounded-start">IP Address</th>
                      <th class="border-0">In-Interface</th>
                      <th class="border-0 rounded-end">Keterangan</th>
                    </tr>
                  </thead>
                  <tbody>
                    @foreach ($response as $item) 
                    <!-- Item -->
                    <tr>
                      <td class="border-0 font-weight-bold">{{ $item['address'] ?? '' }}</td>
                      <td class="border-0 font-weight-bold">{{ $item['interface'] ?? '' }}</td>
                      <td class="border-0 font-weight-bold">{{ $item['comment'] ?? '' }}</td>
                    </tr>
                    <!-- End of Item -->
                    @endforeach
                  </tbody>
                </table>
              </div>


            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
@endsection

lalu jangan lupa pada file controller testing kita return ke view testing.blade.php agar outputnya di kirim ke views berikut script lengkap di TestingController :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\config\Mikrotik;
use Config;
use RouterOS\Client;
use RouterOS\Query;

class TestingController extends Controller
{

  public function index() {
    // Initiate client with config object
    $client = new Client([
      'host' => config('services.mikrotik.host'),
      'user' => config('services.mikrotik.user'),
      'pass' => config('services.mikrotik.pass'),
    ]);    

    // Create "where" Query object for RouterOS
    $query =
      (new Query('/ip/address/print'));

    // Send query and read response from RouterOS
    $response = $client->query($query)->read();

    return view('testing', compact('response'));
  }
}

setelah semua langkah diatas anda ikuti maka akan menghasilkan tampilan seperti gambar di bawah ini :

data ip address mikrotik
data ip address mikrotik

Contoh Aplikasi Menggunakan Mikrotik API

berikut ini adalah beberapa aplikasi yang dapat anda kembangkan menggunakan mikrotik API :

  1. Membangun aplikasi management VPN seperti menambah user vpn ataupun menghapus user vpn
  2. Membangun Aplikasi Management Mikrotik Hotspot
  3. Membangun Aplikasi Trafick Monitoring

Dan Masih banyak lagi contoh-contoh aplikasi yang dapat anda buat dengna menggunakan rest API mikrotik

Apakah Bisa Manajemen VPN Menggunakan API Mikrotik ?

Bisa, Sobat bisa mengelola atau melakukan manajemen akun VPN Mikrotik melalui aplikasi web laravel yang sudah terhubung dengan mikrotik melalui services api mikrotik

Pertanyaan Terkait Mikrotik API

Apa perbedaan port api mikrotik 8728 dengan 8729 ?

Perbedaan Port 8728 dan 8729 terdapat pada protokol jaringan aplikasi yang digunakan untuk mengakses service api jika anda menggunakan protokol http maka aktifkan lah service api mikrotik dengan port 8728 namun api yang diakses melalui protokol https maka services port yang anda aktifkan adalah port 8729

Kesimpulan

Dengan adanya service API di router mikrotik sangat memudahkan kita untuk mengembangkan aplikasi management jaringan yang terhubung dengan router mikrotik secara realtime sehingga data yang kita tampilkan pada aplikasi akan up to date, silahkan anda berkreasi dan mengembangkan karya aplikasi mikrotik anda dengan memanfaatkan service API yang sudah di sediakan gratis oleh mikrotik

Tutorial Belajar Mikrotik Lainnnya :

Disclosure: I may receive affiliate compensation for some of the links below at no cost to you if you decide to purchase a paid plan. This site is not intending to provide financial advice. This is for entertainment only.

Leave a Reply

Your email address will not be published. Required fields are marked *

17 − fourteen =