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 :
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)
Beberapa hal yang harus diganti pada script diatas :<?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(); } ?>
- IP_MIKROTIK_API
- PORT_API
- USERNAME_MIKROTIK
- PASSWORD_MIKROTIK
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 :
Contoh format profile di hotspot : paket_1jam, paket_2jam<span id="vcr"></span><span id="pkt"></span><span id="kuota"></span>
Gunakan awalan paket_NAMAPAKET
Do you realize there's a 12 word sentence you can speak to your man... that will induce deep emotions of love and impulsive attraction to you deep inside his heart?
BalasHapusBecause hidden in these 12 words is a "secret signal" that fuels a man's instinct to love, worship and guard you with all his heart...
12 Words That Trigger A Man's Desire Response
This instinct is so built-in to a man's brain that it will drive him to try harder than ever before to do his best at looking after your relationship.
Matter of fact, triggering this all-powerful instinct is so important to getting the best ever relationship with your man that the second you send your man one of these "Secret Signals"...
...You will instantly find him open his mind and soul for you in such a way he never experienced before and he will see you as the one and only woman in the universe who has ever truly tempted him.