Kau bisa bersembunyi dari kesalahanmu, tapi tidak dari penyesalanmu. Kau bisa bermain dengan dramamu, tapi tidak dengan karmamu.

  • About

    Seorang Teknisi Jaringan yang pernah berkecimpung di Internet Service Provider (ISP) dan akhirnya memutuskan diri untuk menjadi freelancer yang berdomisili di Solo, Surakarta Hadiningrat.

  • Services

    Melayani jasa pasang Internet berbasis Wireless maupun Fiber Optic, Jasa Pasang Tower/Pipa, Pointing Wireless, Setting Router, CCTV, Hotspot, Proxy, Web Server, Network Managed dan Monitoring

  • Contact

    Berbagai saran, kritikan, keluhan dan masukan akan sangat berarti bagi saya. Anda dapat menghubungi/whatsapp saya di nomor:08564-212-8686 atau melalui BBM:2128686

    Monday, March 14, 2016


    Bagi anda yang menemui kendala ketika wifi access-point disetting sebagai bridge(bukan mode route) dan tanpa menggunakan sistem hotspot mikrotik, maka yang terjadi semua device akan terkoneksi langsung. Baik itu gadget maupun PC / Laptop langsung bisa konek tanpa adanya limitasi berdasarkan jenis device. Bisa Anda bayangkan ketika HP Android melakukan update playstore tentu rakus bandwidth. Jika bandwidth Anda besar tentu ngga begitu menemui kendala, namun bila bandwidth pas pasan, bisa lebih terasa. Berikut tips agar pengguna android dilimit berdasarkan hostname saat mendapatkan dhcp dari mikrotik

    Pertama tama buat rule di layer7 mikrotik. Ini bertujuan agar device android/blackberry ditangkap mikrotik
    /ip firewall layer7-protocol
    add name=android regexp="(^(android|BLACKBERRY|MITO|CIMB|Windows|iPhone|BLACKBER).*\$)"

    Lalu buat script berikut

    :global layer7 [/ip firewall layer7-protocol find name="android"]
    :global regexandroid [/ip firewall layer7-protocol get $layer7 regexp ]
    # perhatikan bagian ini (pakai titik)
    :global net 192.168.7.
    :for e from=2 to=62 do={
        :global iddhcp [/ip dhcp-server lease find address=($net . $e)];
        :if ([:len $iddhcp] > 0 ) do={
            :local hostname [/ip dhcp-server lease get $iddhcp host-name ];
            :if ($hostname ~ $regexandroid= true ) do= {
                :global halah [/queue simple find name=($net . $e)]
                :if ([:len $halah] > 0 ) do={
                    /queue simple remove ($net . $e)
                    /queue simple add name=($net . $e) comment="$hostname" \
                    target-addresses=($net . $e)\
                    max-limit=512000/512000
                    :log info "Query sudah ada. ($hostname) ip=$net$e dihapus" }
                :if ([:len $halah] <= 0 ) do={
                    /queue simple add name=($net . $e) \
                    target-addresses=($net . $e) comment="$hostname" \
                    max-limit=512000/512000
                    :log warning "query belum ada. android found : ($hostname) ip=$net$e ditambahkan" }
        } else={
            :global halah [/queue simple find name=$net . $e]
            :if (hostname = "" ) do={
                :if ([:len $halah] > 0 ) do={
                    /queue simple remove ($net . $e)
                    /queue simple add name=($net . $e) comment="hostname kosong tp aktiv" \
                    target-addresses=($net . $e) \
                    max-limit=1000000/1000000
                    :log info "aktiv hostname tdk diketahui : $hostname ip=$net$e remove add" }
                :if ([:len $halah] <= 0 ) do={
                    /queue simple add name=($net . $e) \
                    target-addresses=($net . $e) comment="hostname kosong tp aktiv" \
                    max-limit=1000000/1000000
                    :log info "aktiv hostname tdk diketahui : $hostname ip=$net$e add" }
            } else={
                :if ([:len $halah] > 0 ) do={
                    /queue simple remove ($net . $e)
                    /queue simple add name=($net . $e) comment="$hostname" \
                    target-addresses=($net . $e) \
                    max-limit=2000000/2000000
                    :log info "bukan : $hostname ip= $net$e remove add" }
                :if ([:len $halah] <= 0 ) do={
                    /queue simple add name=($net . $e)\
                    target-addresses=($net . $e) comment="$hostname" \
                    max-limit=2000000/2000000
                    :log info "bukan : $hostname ip=$net$e add" }
            }
        }
    } else={
            :global halah [/queue simple find name=($net . $e)]
                :if ([:len $halah] > 0 ) do={
                    /queue simple remove ($net . $e)
                    /queue simple add name=($net . $e) comment="kosong" \
                    target-addresses=($net . $e) \
                    max-limit=1000000/1000000
                    :log info "bukan : ... ip=$net$e remove add" }
                :if ([:len $halah] <= 0 ) do={
                    /queue simple add name=($net . $e) \
                    target-addresses=($net . $e) comment="kosong"\
                    max-limit=1000000/1000000
                    :log info "bukan : .. ip=$net$e add" }
        }
    }


    Atau jika hanya ingin menambahkan yang statusnya bound saja (yang mendapatkan ip dari dhcp server) cukup pakai script berikut ini

    :global layer7 [/ip firewall layer7-protocol find name="android"]
    :global regexandroid [/ip firewall layer7-protocol get $layer7 regexp ]
    :for e from 2 to 62 do={
        :global iddhcp [/ip dhcp-server lease find address=("192.168.7." . $e)];
        :if ([:len $iddhcp] > 0 ) do={
            :local hostname [/ip dhcp-server lease get $iddhcp host-name ];
            :if ($hostname ~ $regexandroid= true ) do= {
                :global halah [/queue simple find name="192.168.7.$e"]
                :if ([:len $halah] > 0 ) do={
                    /queue simple remove "192.168.7.$e"
                    /queue simple add name=("192.168.7.".$e) comment="$hostname" \
                    target-addresses=("192.168.7." . $e ) \
                    max-limit=512000/512000
                    :log info "android found : $hostname ip= 192.168.7.$e remove add" }
                :if ([:len $halah] <= 0 ) do={
                    /queue simple add name=("192.168.7.".$e) \
                    target-addresses=("192.168.7." . $e ) comment="$hostname" \
                    max-limit=512000/512000
                    :log info "android found : $hostname ip= 192.168.7.$e add" }
        } else={
            :global halah [/queue simple find name="192.168.7.$e"]
            :if (hostname = "" ) do={
                :if ([:len $halah] > 0 ) do={
                    /queue simple remove "192.168.7.$e"
                    /queue simple add name=("192.168.7.".$e) comment="hostname kosong tp aktiv" \
                    target-addresses=("192.168.7." . $e ) \
                    max-limit=1000000/1000000
                    :log info "aktiv hostname tdk diketahui : $hostname ip= 192.168.7.$e remove add" }
                :if ([:len $halah] <= 0 ) do={
                    /queue simple add name=("192.168.7.".$e) \
                    target-addresses=("192.168.7." . $e ) comment="hostname kosong tp aktiv" \
                    max-limit=1000000/1000000
                    :log info "aktiv hostname tdk diketahui : $hostname ip= 192.168.7.$e add" }
            } else={
                :if ([:len $halah] > 0 ) do={
                    /queue simple remove "192.168.7.$e"
                    /queue simple add name=("192.168.7.".$e) comment="$hostname" \
                    target-addresses=("192.168.7." . $e ) \
                    max-limit=2000000/2000000
                    :log info "bukan : $hostname ip= 192.168.7.$e remove add" }
                :if ([:len $halah] <= 0 ) do={
                    /queue simple add name=("192.168.7.".$e) \
                    target-addresses=("192.168.7." . $e ) comment="$hostname" \
                    max-limit=2000000/2000000
                    :log info "bukan : $hostname ip= 192.168.7.$e add" }
            }
        }
    }
    }


    Kalau sudah, silahkan jalankan script tadi. Semoga bermanfaat dan silahkan kembangkan sendiri.

    4 comments:

    1. thanks bang, mantap skripnya, tapi mau nanya nih. klo misalkan ane mau ngebatasin hostname android mis: 128 kbps tapi hostname tertentu mis: hostname "air" ane mau ngebatasin 1M, gimana bang. yg ada di atas kan yg hostname"kosong" dan hostname Bukan android, tolong pencerahannya bang....

      ReplyDelete
    2. Terima kasih sudah berkunjung di blog saya. Untuk masalah identity bisa tambahkan regex baru lagi gan sesuai keinginan agan. Kemudian sesuaikan script nya.

      ReplyDelete
    3. Mas, di mikrotik saya gak jalan nih mas, di regex saya nambahin Galaxy,
      dan ip saya ganti dengan network saya : 10.217.217.

      namun di Queue tidak tampil ip mobile yang ingin di batasi.

      mohon pencerahannya.

      ReplyDelete
    4. Hi i have tried this but nor wirking for me

      ReplyDelete