0% found this document useful (0 votes)
5 views24 pages

Mikrotik API Webinar Overview

The document is a presentation from a GLC webinar on APIs, specifically focusing on Mikrotik API, led by Achmad Mardiansyah. It covers the basics of APIs, their importance, and how to use Mikrotik API for various tasks such as user management and automation. The webinar also includes a demo and encourages participants to engage and provide feedback.

Uploaded by

Ner Tajul
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views24 pages

Mikrotik API Webinar Overview

The document is a presentation from a GLC webinar on APIs, specifically focusing on Mikrotik API, led by Achmad Mardiansyah. It covers the basics of APIs, their importance, and how to use Mikrotik API for various tasks such as user management and automation. The webinar also includes a demo and encourages participants to engage and provide feedback.

Uploaded by

Ner Tajul
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

API

(Application Programming Interface)


GLC webinar, 29 December 2016

Achmad Mardiansyah
achmad@[Link]
GLC Networks, Indonesia
[Link]
Agenda

● Introduction
● API intro
● Mikrotik API
● Demo
● Q&A

2
[Link]
What is GLC?

● Garda Lintas Cakrawala ([Link])


● An Indonesian company
● Located in Bandung
● Areas: Training, IT Consulting
● Mikrotik Certified Training Partner
● Mikrotik Certified Consultant
● Mikrotik distributor

3
[Link]
About GLC webinar?

● First webinar: january 1, 2010 (title:


tahun baru bersama solaris - new
year with solaris OS)
● As a sharing event with various
topics: linux, networking, wireless,
database, programming, etc
● Regular schedule: every 2 weeks
● Irregular schedule: as needed
● Checking schedule:
[Link]
hedule
● You are invited to be a presenter
○ No need to be an expert
○ This is a forum for sharing: knowledge,
experiences, information

4
[Link]
Trainer Introduction

● Name: Achmad Mardiansyah


● Base: bandung, Indonesia
● Linux user since 1999
● Mikrotik user since 2007
● Certified Trainer (MTCNA/RE/WE/UME/INE/TCE)
● Mikrotik Certified Consultant
● Work: Telco engineer, Sysadmin, PHP programmer,
and Lecturer
● Personal website: [Link]
● More info:
[Link]

5
[Link]
Please introduce yourself

● Your name
● Your company/university?
● Your networking experience?
● Your mikrotik experience?
● Your expectation from this course?

6
[Link]
What is Mikrotik?

● Name of a company
● A brand
● A program (e.g. mikrotik academy)
● Headquarter: Riga, Latvia

7
[Link]
What are mikrotik products?

● Router OS
○ The OS. Specialized for networking
○ Website: [Link]/download
● RouterBoard
○ The hardware
○ RouterOS installed
○ Website: [Link]

8
[Link]
What Router OS can do?

● Go to [Link]
○ Download: what_is_routeros.pdf
○ Download: product catalog
○ Download: newsletter

9
[Link]
What are Mikrotik training & certifications?

Certificate validity is 3 years

10
[Link]
API intro

11
[Link]
What is API?

● API: Application Programming Interface


● a set of subroutine definitions, protocols, and tools for building application
software.
● defined methods of communication between various software components
● API implementation are varied:
○ web-based system - using HTTP (popular)
○ operating system based - e.g. when developing daemon (apache, nginx)
○ Hardware based - e.g. when accessing microcontroller
○ etc..

12
[Link]
Why use API?

● For machine to machine communication (e.g. exchange rate, provisioning,


single sign on, etc)
● For automation (e.g. facebook login, twitter login, etc)
● To develop advanced services (uber, gojek, etc. they use google map API)
● For security. Limitation of access rights
● Many other reasons...

13
[Link]
Mikrotik API

14
[Link]
Mikrotik API

● Available since version 3


● Running on TCP port 8728 (http), or TCP
port 8729 (https)
● API service is disabled by default
● API is intended for machines, not human

Without API

With API

15
[Link]
Why use Mikrotik API?

● Security: define more fine-grained security, indirect access to the devices


● Provisioning: add/delete/update user
● Monitoring
● Customised access for user
● Develop a new service (fb login, single-sign-on, etc)
● Communicate with external application (e.g. billing system, monitoring,
self-service application)
● API is more rigid and consistent (suitable for machines). Unlike ssh (ssh is for
human interface)
● etc...

Accessing
mikrotik API

16
[Link]
How to access mikrotik API?

● You need to understand programming language. E.g. PHP


● You need to provide a middle server that connects to mikrotik devices
● Make sure no firewall is blocking the mikrotik API
● API service need to be activated
● Make sure the user has api privileges
● Tips: only allow specific IP address that can access mikrotik API

17
[Link]
DEMO

18
[Link]
Using Mikrotik API

In this example we will use:

● PHP programming language


● Mikrotik PHP class by BenMenking
([Link]
● A webserver that can access mikrotik devices

Accessing
mikrotik API

19
[Link]
Example script (setup initial connection)

require('routeros_api.[Link]'); //include api class

define('MIKROTIK_IP', '[Link]'); //mikrotikIP address


define('MIKROTIK_USERNAME', 'admin'); //mikrotik username
define('MIKROTIK_PASSWORD', 'secret'); //mikrotik password

$API = new routeros_api(); //create a new instance

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

$API->connect(MIKROTIK_IP, MIKROTIK_USERNAME,
MIKROTIK_PASSWORD); // connect to mikrotik device

20
[Link]
add hotspot user using API (prepare user)

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

21
[Link]
add hotspot user using API (add user)

$API->write('/ip/hotspot/user/add',false); //execute add command


$API->write($username, false); //insert username
$API->write($pass, false); // insert password
$API->write($server, false); //insert server
$API->write($profile); //insert profile name
$ARRAY = $API->read(); // this is for debug
echo "<pre>";
print_r($ARRAY);
echo "</pre>";
}

$API->disconnect(); //disconnect API

22
[Link]
Interested?
Just come to our
training...
Special price for webinar
attendees...

23
[Link]
End of slides

● Thank you for your attention


● Please submit your feedback: [Link]
● Like our facebook page: “GLC networks”
● Stay tune with our schedule

24
[Link]

You might also like