Archive

Posts Tagged ‘mikrotik’

phpMikBox: Mikrotik Web-based Management

January 18, 2011 12 comments

I’m very new about Mikrotik but so far i’m really impressed by how it works and it’s simple management. By now, there are 3 ways to config this stuff, by command line (SSH/Telnet), Winbox, and Webbox.

The command line is very powerful way but you need to dive in typing the command manually, and sometimes it’s time consuming to doing simple config.

Mikrotik Command Line

Mikrotik Command Line

The second, Winbox is the most used way by people since it’s have GUI (Graphical User Interface) so it’s very user friendly, and almost all the mikrotik command available on Winbox. But unfortunately, this Desktop-based app is only available for Microsoft Windows, the fact is not everyone using Windows, even we (other than Windows user) could run it from emulator like Wine, but still it’s not cool way to run this app.

Mikrotik Winbox

Mikrotik Winbox

The third, Webbox is the most universal way to config Mikrotik since we just need a web browser to use it, but it’s only few Mikrotik command available here.

Mikrotik Webbox

Mikrotik Webbox

So, what we really need is an app that as universal as Webbox and, as easy and complete as Winbox. After some time googling, surprisingly i don’t find any information about this “dreamed” app, it’s quite weird since Mikrotik has many user and developer out there but they doesn’t have this kind of app. I’m sure i’m not the only one to think about and wanted this app.

So? since there no one of this kind of app, why don’t create it by myself? 😀

To make this dream comes true, we need several development app:

By now, i’m still writing the initial code, hope it will be ready soon. For the interface, i’m copying the winbox interface, using jQuery and JQuery UI with the AJAX stuff should be enough 🙂

Ooops, almost forgot, i named it phpMikBox, and it’s interface mockup looks like this one…

phpMikBox Alpha

phpMikBox Alpha

Let’s hope the dream comes true… 😀

Categories: Open Source Tags: ,

Menambahkan user hotspot Mikrotik secara massal

November 5, 2010 15 comments

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

Categories: Tips 'n trick Tags: