07 - Mikrotik PHP API Pada IP Hotspot

download 07 - Mikrotik PHP API Pada IP Hotspot

of 20

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";

    ?>