07 - Mikrotik PHP API Pada IP Hotspot
-
Upload
habib-hamdzani -
Category
Documents
-
view
243 -
download
3
Transcript of 07 - Mikrotik PHP API Pada IP Hotspot
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
1/20
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
2/20
7-2
Perintah Mikrotik PHP API mencadangkan atribut yang digunakan untuk mengacu ke number/ID
dari record-recordnya di Mikrotik menggunak argumen .id, sehingga perintah untuk
melakukan penghapusan user hotspot adalah:
/ip/hotspot/user/remove
=.id=*5 dicontohkan menghapus yang idnya *5
3.
Perintah Mikrotik CLI untuk mengaktifkan user hotspot adalah:
ip hotspot user enable ?
Perintah Mikrotik API untuk mengaktifkan user hotspot adalah:
/ip/hotspot/user/enable
=.id=*5dicontohkan menghapus yang idnya *5
4.
Perintah Mikrotik CLI untuk menonaktifkan user hotspot adalah:
ip hotspot user disable ?
Perintah Mikrotik PHP API untuk menonaktifkan user hotspot adalah:
/ip/hotspot/user/disable
=.id=*5
5.
Perintah Mikrotik CLI untuk mengubah user hotspot adalah:
ip hotspot user edit ?value-name: namenama kolom yg akan diubah diikuti oleh argumen nama kolom yang
diubah.
Perintah Mikrotik PHP API untuk mengubah user adalah:
/ip/hotspot/user/set
=.id=*5
=name=ali
=password=123456
=mac-address=aa:bb:cc:dd:ee:ff
=comment=aliaja
Perintah mikrotik PHP API untuk mengambil record tertentu adalah:
/ip/hotspot/user/print
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
3/20
7-3
=.proplist=name
=.proplist=password
=.proplist=mac-address
=.proplist=comment
?.id=*5
STUDI KASUS APLIKASI MANAJEMEN IP HOTSPOT USER MIKROTIK
Aplikasi manajemen user hotspot mikrotik ini terdiri dari 8 file kode program PHP antara lain:
1.
File "routeros_api.class.php" yang memuat kode program Mikrotik PHP API.
2.
Kode program pada file "mikrotik.php" untuk membuat koneksi ke router mikrotik adalah
sebagai berikut:
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
4/20
7-4
* Parameter "/ip/hotspot/user/print" digunakan
untuk mengambil data salah user hotspot secara spesifik di
Mikrotik
* berdasarkan referensi argumen .id. Data yang
diambil meliputi server, name, password, mac_address, comment,
profile, dan disabled.*/
$API->write('/ip/hotspot/user/print', false);
$API->write('=.proplist=.id', false);
$API->write('=.proplist=server', false);
$API->write('=.proplist=name', false);
$API->write('=.proplist=password', false);
$API->write('=.proplist=mac-address', false);
$API->write('=.proplist=comment', false);
$API->write('=.proplist=profile', false);
$API->write('=.proplist=disabled', false);
$API->write('?.id='.$id);
$hotspot_users = $API->read();
// Memutuskan koneksi dari router mikrotik
$API->disconnect();
return ($hotspot_users);
}
else
{
return false;
}
}
// Menampilkan seluruh data user hotspot
function getHotspotUsers()
{
// Deklarasi variable dengan scope global
global $hostname, $username, $password;
// Membuat instance (objek) dari class routeros_api
$API = new routeros_api();
// Membuat koneksi ke router Mikrotik
if ($API->connect($hostname, $username, $password))
{
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
5/20
7-5
/*
* Memanggil method "write" dari objek yang
digunakan untuk mengeksekusi perintah2 dari router Mikrotik
* Parameter "/ip/hotspot/user/getall" digunakan
untuk mengambil data seluruh user hotspot di Mikrotik
*/$API->write('/ip/hotspot/user/getall');
$hotspot_users = $API->read();
// Memutuskan koneksi dari router mikrotik
$API->disconnect();
return ($hotspot_users);
}
else
{
return false;}
}
// Menambahkan user hotspot
function add_ip_hotspot_user($nama, $sandi, $alamat_mac,
$komentar)
{
// Deklarasi variable dengan scope global
global $hostname, $username, $password;
// Membuat instance (objek) dari class routeros_api
$API = new routeros_api();
// Membuat koneksi ke router Mikrotik
if ($API->connect($hostname, $username, $password))
{
/*
* Memanggil method "write" dari objek yang
digunakan untuk mengeksekusi perintah2 dari router Mikrotik
* Parameter "/ip/hotspot/user/add" digunakan
untuk menambahkan user hotspot baru di Mikrotik* dengan argumen name, password, mac_address, dan
comment.
*/
$API->write('/ip/hotspot/user/add', false);
$API->write('=name='.$nama, false);
$API->write('=password='.$sandi, false);
$API->write('=mac-address='.$alamat_mac, false);
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
6/20
7-6
$API->write('=comment='.$komentar);
$API->read();
// Memutuskan koneksi dari router mikrotik
$API->disconnect();
return true;
}
else
{
return false;
}
}
// Mengubah data user hotspot tertentu
function edit_ip_hotspot_user($id, $nama, $sandi,
$alamat_mac, $komentar){
// Deklarasi variable dengan scope global
global $hostname, $username, $password;
// Membuat instance (objek) dari class routeros_api
$API = new routeros_api();
// Membuat koneksi ke router Mikrotik
if ($API->connect($hostname, $username, $password))
{
/*
* Memanggil method "write" dari objek yang
digunakan untuk mengeksekusi perintah2 dari router Mikrotik
* Parameter "/ip/hotspot/user/set" digunakan
untuk mengubah data user hotspot tertentu di Mikrotik
* berdasarkan referensi argumen .id. Data yang
diubah meliputi name, password, mac_address, dan comment.
*/
$API->write('/ip/hotspot/user/set', false);
$API->write('=.id='.$id, false);
$API->write('=name='.$nama, false);$API->write('=password='.$sandi, false);
$API->write('=mac-address='.$alamat_mac, false);
$API->write('=comment='.$komentar);
$API->read();
// Memutuskan koneksi dari router mikrotik
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
7/20
7-7
$API->disconnect();
return true;
}
else
{return false;
}
}
// Menghapus user hotspot
function remove_ip_hotspot_user($id)
{
// Deklarasi variable dengan scope global
global $hostname, $username, $password;
// Membuat instance (objek) dari class routeros_api$API = new routeros_api();
// Membuat koneksi ke router Mikrotik
if ($API->connect($hostname, $username, $password))
{
// Memanggil method "write" dari objek yang
digunakan untuk mengeksekusi perintah2 dari router Mikrotik
// Parameter "/ip/hotspot/user/remove" pada
method "write" berfungsi untuk menghapus user tertentu
// yang terdapat di router Mikrotik
$API->write('/ip/hotspot/user/remove', false);
$API->write('=.id='.$id);
$API->read();
// Memutuskan koneksi dari router mikrotik
$API->disconnect();
return true;
}
else
{return false;
}
}
// Mengaktifkan user hotspot
function enable_ip_hotspot_user($id)
{
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
8/20
7-8
// Deklarasi variable dengan scope global
global $hostname, $username, $password;
// Membuat instance (objek) dari class routeros_api
$API = new routeros_api();
// Membuat koneksi ke router Mikrotik
if ($API->connect($hostname, $username, $password))
{
// Memanggil method "write" dari objek yang
digunakan untuk mengeksekusi perintah2 dari router Mikrotik
// Parameter "/ip/hotspot/user/enable" pada
method "write" berfungsi untuk mengaktifkan user tertentu
// yang terdapat di router Mikrotik
$API->write('/ip/hotspot/user/enable', false);
$API->write('=.id='.$id);
$API->read();
// Memutuskan koneksi dari router mikrotik
$API->disconnect();
return true;
}
else
{
return false;
}
}
// Menonaktifkan user hotspot
function disable_ip_hotspot_user($id)
{
// Deklarasi variable dengan scope global
global $hostname, $username, $password;
// Membuat instance (objek) dari class routeros_api
$API = new routeros_api();
// Membuat koneksi ke router Mikrotik
if ($API->connect($hostname, $username, $password))
{
// Memanggil method "write" dari objek yang
digunakan untuk mengeksekusi perintah2 dari router Mikrotik
// Parameter "/ip/hotspot/user/disable" pada
method "write" berfungsi untuk menonaktifkan user tertentu
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
9/20
7-9
// yang terdapat di router Mikrotik
$API->write('/ip/hotspot/user/disable', false);
$API->write('=.id='.$id);
$API->read();
// Memutuskan koneksi dari router mikrotik$API->disconnect();
return true;
}
else
{
return false;
}
}
?>
3.
Kode program pada file "ip_hotspot_user.php" untuk menampilkan data sistem user yang
terdapat di router mikrotik adalah sebagai berikut:
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
10/20
7-10
foreach ($hotspot_users as $key => $data)
{
// Membuat baris (row) dari tabel
echo "";
echo "". $data['.id'] ."";
echo "". $data['server'] ."";echo "". $data['name'] ."";
echo "". $data['password'] ."";
echo "". $data['mac-address']
."";
echo "". $data['comment'] ."";
echo "". $data['profile'] ."";
echo "". $data['disabled'] ."";
echo "";
echo "Detail";echo " | Ubah";
echo " | Hapus";
// Mengatur penampilan link Disable dan Enable
// Jika status disabled user hotspot adalah false,
maka tampilkan link disable
// sebaliknya tampilkan link enable
if ($data['disabled'] == 'true')
{
echo " | Enable";
}
else
{
echo " | Disable";
}echo "";
}
echo "";
echo "Tambah IP Hotspot
User";
?>
Tampilan kode program ini ketika dieksekusi terlihat seperti pada gambar berikut:
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
11/20
7-11
4.
Kode program pada file "add_ip_hotspot_user.php" untuk menambahkan data user hotspot
baru adalah sebagai berikut:
Add User Hotspot
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
12/20
7-12
}
elseif (empty($_POST['txtalamat_mac']))
{
echo "Alamat MAC harus diisi!";
}
else{
include 'mikrotik.php';
$nama = $_POST['txtnama'];
$sandi = $_POST['txtsandi'];
$alamat_mac = $_POST['txtalamat_mac'];
$komentar = $_POST['txtkomentar'];
if (add_ip_hotspot_user($nama, $sandi,
$alamat_mac, $komentar)){
header('location: ip_hotspot_user.php');
}
else
{
echo "Penambahan data user hotspot gagal
dilakukan!";
}
}
}
?>
Name
:
Password
:
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
13/20
7-13
Retype Password
:
MAC Address
:
Comment
:
Tampil Data User Hotspot
Tampilan kode program ini ketika dieksekusi terlihat seperti pada gambar berikut:
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
14/20
7-14
5.
Kode program pada file "edit_ip_hotspot_user.php" untuk mengubah data user hotspot
tertentu adalah sebagai berikut:
Edit User Hotspot
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
15/20
7-15
elseif (empty($_POST['txtulangisandi']))
{
echo "Ulangi Sandi harus diisi!";
}
elseif ($_POST['txtsandi'] !=$_POST['txtulangisandi'])
{
echo "Sandi dan Ulangi Sandi harus sama!";
}
elseif (empty($_POST['txtalamat_mac']))
{
echo "Alamat MAC harus diisi!";
}
else
{$id = $_POST['id'];
$nama = $_POST['txtnama'];
$sandi = $_POST['txtsandi'];
$alamat_mac = $_POST['txtalamat_mac'];
$komentar = $_POST['txtkomentar'];
if (edit_ip_hotspot_user($id, $nama, $sandi,
$alamat_mac, $komentar))
{
header('location: ip_hotspot_user.php');
}
else
{
echo "Perubahan data user hotspot gagal
dilakukan!";
}
}
}
// Mengambil data user hotspot tertentu dan menampilkannyadi form
if (isset($_GET['id']) && !empty($_GET['id']))
{
// Mengambil nilai parameter querystring dengan nama
id
$id = $_GET['id'];
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
16/20
7-16
// Memanggil function untuk mengambil data user
hotspot tertentu
$hotspot_users = detail_ip_hotspot_user($id);
foreach ($hotspot_users as $key => $data)
{
$id = $data['.id'];$nama = $data['name'];
$sandi = $data['password'];
$ulangisandi = $data['password'];
$alamat_mac = $data['mac-address'];
$komentar = $data['comment'];
}
}
?>
Name
:
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
17/20
7-17
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
18/20
7-18
6.
Kode program pada file "remove_ip_hotspot_user.php" untuk menghapus data user hotspot
tertentu adalah sebagai berikut:
7.
Kode program pada file "disable_ip_hotspot_user.php" untuk menonaktifkan user hotspot
tertentu adalah sebagai berikut:
Tampilan kode program ini ketika dieksekusi terlihat seperti pada gambar berikut:
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
19/20
7-19
8.
Kode program pada file "enable_ip_hotspot_user.php" untuk mengaktifkan user hotspot
tertentu adalah sebagai berikut:
Tampilan kode program ini ketika dieksekusi terlihat seperti pada gambar berikut:
6.
Perintah Mikrotik PHP API untuk menampilkan detail dari user hotspot tertentu adalah:
-
7/21/2019 07 - Mikrotik PHP API Pada IP Hotspot
20/20
7-20
// Memanggil function getHotspotUsers dan menampung hasil
pemanggilan pada variable $hotspot_users
$hotspot_users=detail_ip_hotspot_user($id);
// Membuat tabelecho "";
// Membuat baris (row) sebagai header (judul kolom) dari
tabel
echo "";
echo ".id";
echo "Server";
echo "Nama Login";
echo "Sandi Login";
echo "Alamat MAC";
echo "Comment";
echo "Profile";echo "Disabled";
echo "";
// Membuat perulangan untuk menampilkan data yang ditampung
pada variable "hotspot_users"
foreach ($hotspot_users as $key => $data)
{
// Membuat baris (row) dari tabel
echo "";
echo "". $data['.id'] ."";
echo "". $data['server'] ."";
echo "". $data['name'] ."";
echo "". $data['password'] ."";
echo "". $data['mac-address']
."";
echo "". $data['comment'] ."";
echo "". $data['profile'] ."";
echo "". $data['disabled'] ."";
echo "";
}echo "";
echo "Kembali ke Tampil IP
Hotspot User";
?>