Home > Tips 'n trick > Menambahkan user hotspot Mikrotik secara massal

Menambahkan user hotspot Mikrotik secara massal

Bagaimana jika Anda ingin menambahkan user hostpot Mikrotik?
Jawabannya mudah sekali, gunakan Winbox, tinggal klak-klik beberapa kali, selesai.

Tapi, bagaimana jika user hostpot yang ingin ditambahkan berjumlah ratusan atau mungkin ribuan?
Apakah Anda rela mengklak-klik ratusan atau ribuan kali? pasti tangan bakal pegel, dan ini sangat tidak efisien.

Nah, untuk mengatasi hal ini, Mikrotik telah menyediakan API (Application Program Interface) yang bisa digunakan untuk mengakses perintah-perintah mikrotik dari luar environment (lingkungan) mikrotik itu sendiri. Kita bisa menggunakan banyak bahasa pemrograman, antara lain PHP, Python, C, Ruby, Java, dan masih banyak lagi.

Dalam hal ini kita akan menggunakan PHP, pertama-tama unduh berkas Mikrotik API PHP Class (Rename menjadi file PHP), ini adalah PHP Class untuk menggunakan Mikrotik API, diambil dari halaman resmi Mikrotik.

Selanjutnya buat koding PHP untuk menambahkan User Hotspot (simpan dalam file tambah_user_hotspot.php).

require('routeros_api.class.php');

// Ubah sesuai setting mikrotik hotspot Anda
define('MIKROTIK_IP', '192.168.88.1');
define('MIKROTIK_USERNAME', 'admin');
define('MIKROTIK_PASSWORD', '');
define('SERVER', 'all');
define('PROFILE', 'default');

$API = new routeros_api();

// Aktifkan debug
// $API->debug = true;

if ($API->connect(MIKROTIK_IP, MIKROTIK_USERNAME, MIKROTIK_PASSWORD))
{
	// Data user dan password hotspot
	$user = array(1 => array('name' => 'user1', 'password' => 'pass1'),
				  2 => array('name' => 'user2', 'password' => 'pass2'),
				  3 => array('name' => 'user3', 'password' => 'pass3'),
				  4 => array('name' => 'user4', 'password' => 'pass4'),
				  5 => array('name' => 'user5', 'password' => 'pass5'),
				  );

	foreach($user as $tmp)
	{
		$username="=name=";
		$username.=$tmp['name'];

		$pass="=password=";
		$pass.=$tmp['password'];

		$server="=server=";
		$server.=SERVER;

		$profile="=profile=";
		$profile.=PROFILE;

	   	$API->write('/ip/hotspot/user/add',false);
	   	$API->write($username, false);
	   	$API->write($pass, false);
	   	$API->write($server, false);
		$API->write($profile);

		$ARRAY = $API->read();

		// Debug variable (return value)
		//echo "<pre>";
	   	//print_r($ARRAY);
		//echo "</pre>";
	}
   	$API->disconnect();
}

Beberapa point yang perlu diperhatikan:

MIKROTIK_IP, adalah alamat IP dari Mikrotik yang dituju.
MIKROTIK_USERNAME, adalah username untuk login ke Mikrotik.
MIKROTIK_PASSWORD, adalah password untuk login ke Mikrotik.
SERVER, adalah parameter server untuk user yang bersangkutan, all berarti user ini active untuk semua hotspot (jika Anda memiliki lebih dari satu Hotspot).
PROFILE, adalah profile untuk user yang bersangkutan, biasanya digunakan untuk kategori user (pembatasan bandwidth, dan lainnya)

Variable $user adalah array data yang berisi informasi user dan password hotspot yang akan kita tambahkan ke Mikrotik, dalam hal ini saya menggunakan array biasa, Anda bisa menggunakan/mengambil data dari tempat lain, misalnya excel/csv atau query dari database lain.

Selanjutnya nyalakan servis API pada mikrotik, karena memang fitur API secara default tidak aktif. Secara default juga API menggunakan port 8728.

Masuk ke mikrotik dan jalankan perintah:

/ip service enable api

Selanjutnya jalankan skrip tambah_user_hotspot.php dan lihat hasilnya, Anda juga dapat menyalakan debug untuk melihat lebih jelas apa yang terjadi.

Selamat mencoba 🙂

Referensi: http://wiki.mikrotik.com/wiki/Manual:API

Advertisements
Categories: Tips 'n trick Tags:
  1. iqbal
    November 13, 2010 at 6:49 am

    hallo mas sya sudah coba itu dan berhasil, trus kalo kita mau menambah 1 user cranya gmn..?sy sudh coba2 dan blum brhasil, ini utk proyek skripsi sy, mhon bntuannya.

    ini no hp sy 081999889069

  2. November 13, 2010 at 2:04 pm

    kalau tambah satu user berarti isi array-nya hanya satu.
    Coba aktifkan debugnya, nanti akan kelihatan dimana masalahnya.

  3. iqbal
    November 14, 2010 at 3:39 am

    ya sudah berhasil mas, thank’s. kalo tanpa array bisa gak soalnyakan cuma nambah 1 user. trus klo remove user gmn cranya baik secara massal ataupun satu persatu, sy pke cra yg di atas sy ganti add mnjadi remove kok gk bisa ya. mhon bantuannya klo ada contol ato artikel tolong dikrimin ya masa ke email sy : m_xbal@yahoo.co.id

  4. agus
    February 15, 2011 at 2:24 am

    saya udah coba aktifin api servicenya kok ga bisa ya, “ip service enable api”
    Pesannya “invalid item number”, itu kenapa ya???

  5. February 17, 2011 at 6:56 am

    @agus: Apakah sudah dicoba menggunakan WinBox? Cek juga versi ROS nya.

  6. iponk
    April 14, 2011 at 10:37 am

    thanks gan ane coba dulu mudah2an berhasil gan

  7. November 5, 2011 at 5:56 am

    sya sudah mengikuti semuanya yg diaatas tp kok tidak mau jln ya. sya pakek mikrotik ver 3.22. bisakah mas bantu sya?

  8. November 9, 2011 at 12:14 pm

    Tetsuya Harada :

    sya sudah mengikuti semuanya yg diaatas tp kok tidak mau jln ya. sya pakek mikrotik ver 3.22. bisakah mas bantu sya?

    Silahkan aktifkan debug dan lihat outputnya.

  9. November 12, 2011 at 12:27 pm

    debug mksdnya apa mas? sya kurang mengerti maklum newbie.. kalo bisa kasi lebih detailnya kirim ke email djn4n4k21p@yahoo.com. thx sebelumnya.

  10. January 12, 2012 at 9:54 am

    mas saya mau nampilin ip service mikroitik di php api.. kira2 bagaimana codingnya mas

  11. Dotpixel
    May 28, 2013 at 6:12 pm

    Berarti prinsipnya sama ya, tetap id user tersimpan dalam database mikrotik?? gimna caranya klo databasenya tidak disimpan dalam mikrotik tetapi di external database misalnya mysql, tolong di jelsakan gan ane blm faham maklum maklum newbie

  12. sam
    November 25, 2013 at 6:16 am

    Mas bagaimana kalo database user hotspot kita sudah menggunakan external radius?? saya berhasil menggunakan script anda tapi usernya hanya tampil lewat winbox, tidak ada di userman web..

  13. December 22, 2013 at 3:19 pm

    Mas, bermanfaat sekali ilmunya..saya mau tanya kalau saya ingin membuat aplikasi, atau file php dimana kebutuhannya untuk mengeprint voucher/ticket yang isinya nama hotspot kita, username, dan password, serta profil paketnya (1 jam, 2 jam, 3jam), bagaimana ya caranya ya? jadi seperti struk di indomaret itu mas. kalau ada user yang mau akses, baru kita print. user nanti dapat struk yang isinya usernama,password,dan paket waktunya. Jadi, misal kita sudah membuat user hotspot 100 buah/akun. satu per satu username+passwordnya bisa diprint sampai pada waktunya nanti akan habis. dan bagaimana juga agar tidak mengulang username yang sudah pernah di print, atau dipakai. makasih mas…please…

  14. Purnomo Tri SW
    August 24, 2015 at 4:08 am

    Mas Azhari Harahap yang budiman..tolong saya diajarin caranya membuat loginpages hotspot yang bisa dipakai untuk banyak user dg user dan password yang sama..info login pages yg ada hanya bisa untuk 1 user dg password nya saja..mohon dikirimkan via email saya ya..tris_ahyu_di@yahoo.com..

  15. May 4, 2016 at 3:31 am

    mas saya mau tanya, klo add user sudah berjalan, bisa gak untuk status aktif user itu dirubah menjadi belum aktif dulu secara default ? nanti jika sudah ada aksi aktifasi dari php baru user itu statusnya aktif. klo ada rev bisa email ke cungikawake@gmail.com

    terima kasih

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: