Home News Contact About
About Services Clients Contact

Script mikrotik mencari IP PUBLIC indihome

|


IP PUBLIC adalah IP yang bisa diakses langsung oleh internet meskipun dari luar jaringan, pada dasarnya kita ingin memantau kondisi router seperti mikrotik dan akses point bisa dengan mudah mengaksesnya meskipun kita sedang ada diluar jaringan tersebut, jadi IP PUBLIC ini antar penting dan ga penting tergantung kebutuhan kalian.

Pada tutorial kali ini saya berbagi script untuk cara mendapatkan IP PUBLIC pada jaringan indihome, jaringan indihome sendiri kadang juga tidak bisa memberi kita IP PUBLIC jika tidak percaya bisa cek langsung di modem kamu gaes, IP yang diberikan kadang bisa PRIVATE kadang juga langsung bisa IP PUBLIC.

Untuk itu kita membutuhkan script mikrotik yang bisa mencari IP yang didapat itu private atau public, untuk itu kita membutuhkan dial PPPOE indihomenya harus melalui mikrotik ya gaes untuk bisa dial di mikrotik kalian cukup telp saja 147 minta modem indihome nya mode bridge, nanti kalian akan mendapatkan user dan password pppoe indihome dan bisa dial dari mikrotiknya.

Berikut script untuk mencari IP-PUBLIC
  • Buka winbox pilih System - Script (dude jangan di centang), beri nama bisa GET-PUBLIC-IP
:local WANinterface indihome;
:local IPBaru [/ip address get [find where interface=$WANinterface] address];
:set IPBaru [:pick $IPBaru 0 ([:len $IPBaru]-3)];
#Mencari IP-PUBLIK
:if ($IPBaru ~"^[0-9]*10" || $IPBaru ~"^[0-9]*172" || $IPBaru ~"^[0-9]*36") do={
    :log warning "$IPBaru -> Private ip address.";
    /interface pppoe-client enable $WANinterface;
} else={
    :log warning "$IPBaru -> IP-PUBLIK."; 
}
Script berikut tinggal kamu atur di schedule mikrotik kira - kira 1 menit saja dan untuk interfacenya sesuaikan dengan nama interface kalian ya. Semoga artikel ini bisa bermanfaat.

Pengaturan scheduler  ( System - scheduler )
  • Nama : Sesuaikan saja.
  • Start time : startup
  • Interval : 00:01:00
  • Dude : jangan dicentang.
  • On Event : GET-PUBLIC-IP (samakan dengan nama script diatas).

Custum status hotspot mikrotik via API

|


Pada pembahasan kali ini saya ingin berbagi script PHP yang sudah saya buat dengan menggunakan API MIKROTIK, tujuan script ini untuk membuat variable sendiri pada halaman status mikrotik yang pada dasarnya mikrotik sendiri sudah memberikan variable yang bisa langsung kalian pakai berikut link variable default mikrotik : https://wiki.mikrotik.com/wiki/Manual:Customizing_Hotspot

Pada script yang sudah saya buat ada 2 variable yang sudah saya modif yaitu :
  • Membaca Profile User.
  • Membaca Total kuota terpakai.
Pada script berikut saya hanya membuat modif 2 variable tambahan dan jika kalian bisa mengeditnya masih banyak lagi variable yang bisa kalian buat sendiri, kali ini saya hanya memberi 2 contoh saja dan kalian bisa mengembangkannya sendiri. Langsung saja kita ke pokok pembahasan ya...

Persiapan pertama :
  • Kamu harus mengaktifkan akses API pada mikrotik (IP - Service).
  • Download routeros_api.class.php
  • Copy script dibawa ini dengan nama file hotspot.php (nama sesuaikan saja)
<?php
error_reporting(0);
header('Content-Type: application/json');
header("Access-Control-Allow-Origin: *");
require ('routeros_api.class.php');

/*    Pengaturan Mikrotik server  */

define('MIKROTIK_IP', 'IP_MIKROTIK_API:PORT_API');
define('MIKROTIK_USERNAME', 'USERNAME_MIKROTIK');
define('MIKROTIK_PASSWORD', 'PASSWORD_MIKROTIK');

function chkAdmin($val, $arr)
{
   foreach ($arr as $arr_val)
   {
      if ($arr_val == $val)
      {
         return true;
      }
   }
   return false;
}

function Size($path)
{
   $bytes = $path;

   if ($bytes > 0)
   {
      $unit = intval(log($bytes, 1024));
      $units = array(
         'B',
         'KB',
         'MB',
         'GB'
      );

      if (array_key_exists($unit, $units) === true)
      {
         return sprintf('%d %s', $bytes / pow(1024, $unit) , $units[$unit]);
      }
   }

   return $bytes;
}

if ($_GET["voucher"])
{
   $vcr = $_GET["voucher"];
   $APIMIKROTIK = new RouterosAPI();
   #$APIMIKROTIK->debug = true;
   #Cek profile mikrotik ada apa tidak dengan yang user input
   if ($APIMIKROTIK->connect(MIKROTIK_IP, MIKROTIK_USERNAME, MIKROTIK_PASSWORD))
   {
      $getprofile = $APIMIKROTIK->comm("/ip/hotspot/user/print", array(
         "?name" => $vcr
      ));
      $TotalReg = count($getprofile);
      $options = array();

      for ($i = 0;$i < $TotalReg;$i++)
      {
         $regtable = $getprofile[$i];
         $nama = $regtable['name'];
         $profil = $regtable['profile'];
         $kuota = Size($regtable['bytes-out']);
         $namaProfilHotspot = explode("_", $profil)[1];
         array_push($options, $namaProfilHotspot);
      }

      $ProfilAdaTidak = chkAdmin($namaProfilHotspot, $options);

      if ($ProfilAdaTidak)
      {
         $DataDetail = array(
            'Hasil' => array(
               'url' => array(
                  'msg' => 'ok',
                  'Voucher' => $nama,
                  'Paket' => $namaProfilHotspot,
                  'Kuota Terpakai' => $kuota
               ) ,
            )
         );
      }
      else
      {
         $DataDetail = array(
            'Hasil' => array(
               'url' => array(
                  'msg' => 'Data voucher tidak ditemukan.'
               ) ,
            )
         );
      }
   }
   echo json_encode($DataDetail, JSON_PRETTY_PRINT);
   $APIMIKROTIK->disconnect();
}
?>
Beberapa hal yang harus diganti pada script diatas :
  • IP_MIKROTIK_API
  • PORT_API
  • USERNAME_MIKROTIK
  • PASSWORD_MIKROTIK
Upload file tersebut di hosting kamu ya gaes, dan untuk mencoba berjalan apa tidak kalian akses dulu manual file tersebut misal : https://fmt-tools.com/api/hotspot.php?voucher=gilang

Pada gambar diatas bisa disimpulkan script kalian berjalan dengan baik, selanjutkan tinggal kita implementasikan ke status.html pada hotspot kita. tambahkan javascript berikut di header status.
<script type="text/javascript">
function createXHR(){var a=false;try{a=new ActiveXObject('Msxml2.XMLHTTP')}catch(err2){try{a=new ActiveXObject('Microsoft.XMLHTTP')}catch(err3){try{a=new XMLHttpRequest()}catch(err1){a=false}}}return a};
var h = createXHR();
var i = 'https://fmt-tools.com/api/hotspot.php?voucher=$(username)';
h.open('GET', i, true);
h.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
h.onload = function() {
    if (h.readyState == 4 && h.status == 200) {
        var data = h.responseText;
        var jsonResponse = JSON.parse(data);
        var kodeVoucher = jsonResponse["Hasil"]["url"]["Voucher"];
        var paket = jsonResponse["Hasil"]["url"]["Paket"];
        var kuota = jsonResponse["Hasil"]["url"]["Kuota Terpakai"];
        $('#vcr').html(kodeVoucher);
        $('#pkt').html(paket);
        $('#kuota').html(kuota);
    }
};
h.send();
</script>
Ok dari tahap ini kalian sudah bisa menampilkan Nama profile dan jumlah kuota terpakai, semoga artikel ini dapat bermanfaat dan jangan lupa tinggalkan komentar jika ada hal yang ditanyakan.
Berikut variable yang bisa di pakai :
<span id="vcr"></span>
<span id="pkt"></span>
<span id="kuota"></span>
Contoh format profile di hotspot : paket_1jam, paket_2jam 
Gunakan awalan paket_NAMAPAKET

Install Pi-hole di STB HG680P

|


Apakah kalian sudah tau apa itu Pi-hole? dan apa manfaat menggunakan Pi-hole. Baiklah pada kesempatan kali ini saya akan memberi sedikit penjelasan tentang Pi-hole, secara singkatnya Pi-hole adalah server DNS yang bisa memblokir iklan - iklan yang muncul pada halaman website, dengan memblokir iklan - iklan tersebut juga akan memudahkan kita untuk mengakses website lebih cepat.

Adapun kita juga bisa memblokir iklan dengan menggunakan addon misal adbBlok yang bisa di pasang di browser mozilla atau pun crome, tetapi jika kita sudah mempunyai server DNS Pi-hole kita tidak perlu lagi memasang software anti iklan tersebut. Jika kalian ingin mencobanya silahkan ikuti tutorial berikut.

Siapkan bahan dan cara pengerjaan : 
  • STB HG680P yang sudah di install Arbian Linux.
  • Jika belum di pasang Arbian Linux bisa cek link berikut KLIK CARA PASANG.
  • Selanjutnya masuk sebagai user root menggunakan puTTy.
  • Ketikan perintah berikut :
curl -sSL https://install.pi-hole.net | bash
  • Ikuti saja perintah yang muncul, saat memilih DNS pilih DNS CloudFlare.
  • Protocol pilih IPv4 saja.
  • Web Interface  Pi-hole pilih ON.
  • Jika susah selesai langsung bisa kamu akses halaman admin Pi-hole di http://192.168.1.1/admin (ganti ip dengan IP Pi-hole kamu).
Cara penggunaannya cukup lah mudah kamu tinggal isi DNS server menggunakan IP Pi-hole kamu, dan pastikan STB tetap dalam keadaan menyala. Jika ada pertanyaan bisa mengirimkan komentar dibawah post ini sobat, saya akan senang hati membantu kalian. Semoga artikel ini bermaanfaat.