
PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information.PDF generated at: Thu, 19 Dec 2013 20:05:50 CE
Supported Hardware7Soekris net4801-48/50 +lan16413.22 All 7 (3+4) ethernet works, USB works (tested with Huawei 3G modem), extra serial port works. An
API in Java97 }Hasher.javaHelper functions to perform some tasks package libAPI; /* * Helper.java * * Created on 08 June 2007, 11:25 * * To chang
API in Java98 String hex = Integer.toHexString(0xFF & messageDigest[i]); if (hex.length() == 1) { hexString.appe
API in Java99 private DataInputStream in = null; LinkedBlockingQueue queue = null; /** * Creates a new instance of CommandRead * @param in
API in Java100 return; } sk = a ^ 0xC00000; }
API in Java101 } else { try { queue.put(s); } catch (InterruptedException ex) {
API in Java102 WriteCommand setCommand(String command) { this.command = command.trim(); return this; } String getCommand() { r
API in Java103 for (byte c : command.getBytes("US-ASCII")) { ret[i++] = c; } } else
API In CPP104API In CPPThis is written in C++. The code is based highly on the code from API In C. I like the way this was done in respectto how easy
API In CPP105 any code or documentation that is identified in the RFC as being copyrighted. The original and principal author of md5.h is L. Peter
API In CPP106/* Append a string to the message. */void md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes);/* Finish the message and retu
Supported Hardware8Huawei E1550 [8]v3.x andhigherUSBHuawei E1762 USB Modem v5.14 andhigherLocks up occasionally on 433UAH. Need to unplug toreset.USBH
API In CPP107 copyrighted. The original and principal author of md5.c is L. Peter Deutsch <[email protected]>. Other authors are noted in th
API In CPP108#define T17 /* 0xf61e2562 */ (T_MASK ^ 0x09e1da9d)#define T18 /* 0xc040b340 */ (T_MASK ^ 0x3fbf4cbf)#define T19 0x265e5a51#define T20
API In CPP109#define T64 /* 0xeb86d391 */ (T_MASK ^ 0x14792c6e)static voidmd5_process(md5_state_t *pms, const md5_byte_t *data /*[64]*/){ md5_word_
API In CPP110 else /* dynamic big-endian */#endif#if BYTE_ORDER >= 0 /* big-endian */ { /*
API In CPP111 SET(b, c, d, a, 15, 22, T16);#undef SET /* Round 2. */ /* Let [abcd k s i] denote the operation a = b + ((a + G(b,c,
API In CPP112 SET(c, d, a, b, 3, 16, T43); SET(b, c, d, a, 6, 23, T44); SET(a, b, c, d, 9, 4, T45); SET(d, a, b, c, 12, 11, T46); S
API In CPP113 pms->abcd[0] = 0x67452301; pms->abcd[1] = /*0xefcdab89*/ T_MASK ^ 0x10325476; pms->abcd[2] = /*0x98badcfe*/ T_MASK ^ 0
API In CPP114 static const md5_byte_t pad[64] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
API In CPP115#define DONE 1#define TRAP 2#define FATAL 3class Sentence { std::vector<std::string> strWords; // vecor of strings represen
API In CPP116/******************************************************************** * Print a sentence. ***********************************************
Supported Hardware9Option Qualcomm 3G WCDMA Model M00201-10886(GTM378) [16]v3.x andhigherminiPCI-eOption Qualcomm 3G CDMA Model M00301 (GTM380)[17]v3.
API In CPP117}/******************************************************************** * Add a Sentence to a block **************************************
API In CPP118 mt.WriteSentence(sentence); // receive and print block from the API mt.ReadBlock(block); block.Print(); } catch (in
API In CPP119#include "MikrotikAPITypes.h"#define NOCONNECT 1#define NOLOGIN 2class MikrotikAPI { private: int fdSock;
API In CPP120Mikrotik API source file (MikrotikAPI.cpp)#include "MikrotikAPI.h"using namespace std;MikrotikAPI::MikrotikAPI(const string &am
API In CPP121 address.sin_port = htons(port); addressSize = sizeof(address); DEBUG ? printf("Connecting to %s\n", strIp
API In CPP122 char cNull[1] = {0}; //Send login message WriteWord("/login"); WriteWord(cNull); ReadSent
API In CPP123 DEBUG ? writeSentence.Print() : 0; WriteSentence(writeSentence); ReadSentence(readSentence)
API In CPP124 if (littleEndian) { encodedLengthData[0] = lengthData[2] | 0xc0; encodedLengthData[1] = len
API In CPP125 ********************************************************************/void MikrotikAPI::WriteSentence(Sentence &writeSentence){
API In CPP126 lengthData[3] &= 0x1f; // mask out the 1st 3 bits read(fdSock, &lengthData[2], 1);
Supported Hardware10Sierra Wireless MC8755 for Europe [33]v3.x andhigherMiniPCI-eSierra Wireless MC8765 [33]v3.x andhigherMiniPCI-eSierra Wireless MC8
API In CPP127 } int retMessageLength = *messageLength; delete messageLength; delete [] lengthData; return retMess
API In CPP128 // deallocate szTmpWord delete [] tmpWord; DEBUG ? printf("Word = %s\n", strWordO
API In CPP129}/******************************************************************** * Read Sentence Block from the socket...keeps reading sentences *
API In CPP130 } return strReturn;}/******************************************************************** * MD5 helper function to calcu
API In CPP131 // now look @ the second car in the 16^0 place if (hexToConvert[1] == 'f' || hexToConvert[1] == 'F') {
Api php template132Api php templateThis is a php template for working with RouterOS v3 API.Requirements1. It uses the php api Class found here : link
Api php template133if ($API->connect('192.168.1.2', 'api', 'api1234')) { // Change this as necessery$ARRAY = $API-&
Api php template134echo "<br />"; $API->disconnect();}?>Registration Tables<?php function popup( $text, $popup ) { ?>
Api php template135noise</td><td>strength at rates</td><td>tx ccq</td><td>pthroughput</td><td>ack time
Api php template136$regtable = $ARRAY[$i]; if ($regtable['ap']=="true") { echo "<font color=#04B404 s
Supported Hardware11ZTE MF680 [45]v5.4 andhigherUsed by 3 in Sweden. Set data chanel to 1 USBZTE MF668 [46]v4.5 andhigherfor Rogers Wireless (Canada)
Api php template137 "</font><br>"; } echo "</td><td>";for ($i=0; $i<250; $i++)
Api php template138$regtable = $ARRAY[$i]; echo "<font color=#880000 size=2>" . $regtable['signal-strength'] . &q
Api php template139"</font><br>"; } echo "</td><td>";for ($i=0; $i<250; $i++)
Api php template140 echo "<font color=#FF0000 size=2>". $regtable['802.1x-port-enabled'] ."</font><br&
Api php template141$regtable['wmm-enabled'] . "</font><br>"; }else{ echo "<font color=#FF0000
Api php template142<?phprequire('routeros_api.class.php');$API = new routeros_api();$API->debug = false;if ($API->connect('192
Api php template143for ($i=0; $i<250; $i++) {$regtable = $ARRAY[$i]; echo "<font color=#04B404 size=3>" . $regtable
Api php template144$regtable = $ARRAY[$i]; echo "<font color=#000099 size=3>" . $regtable['mtu'] . "</fon
Api php template145<?phprequire('routeros_api.class.php');$API = new routeros_api();$API->debug = false;if ($API->connect('192
Api php template146 echo "<font color=#04B404 size=2>" . $regtable['name'] . "</font><br>";
Supported Hardware12Novatel Expedite ET620 CDMA/EV-DO v3.x andhigherPCMCIAOnda H600/ZTE MF330 v3.x andhigherOnda MDC525UP Not supported USBOnda MT833U
Api php template147 {$regtable = $ARRAY[$i]; echo "<font color=#000099 size=1>" . $regtable['interface-type'
Api php template148 echo "<font color=#880000 size=2>" . $regtable['band'] . "</font><br>";
Api php template149 echo "<font color=#04B404 size=2>" . $regtable['default-authentication'] . "</font>&l
Api php template150 echo "</td><td>";for ($i=0; $i<250; $i++) {$regtable = $ARRAY[$i];
Api php template151 {$regtable = $ARRAY[$i]; if ($regtable['running']=="true") { echo
Api php template152Hotspot Hosts List<?php function popup( $text, $popup ) { ?> <a href="javascript:void(0);" onmouseover="
Api php template153 } echo "</td><td>";for ($i=0; $i<250; $i++) {$regtable = $ARRAY[$i];
Api php template154echo "</td><td>";for ($i=0; $i<250; $i++) {$regtable = $ARRAY[$i]; echo "<font col
Api php template155 } echo "</td><td>";for ($i=0; $i<250; $i++) {$regtable = $ARRAY[$i];
Api php template156echo "</table>";echo "<br />Debug:";echo "<br />";print_r($ARRAY); $API->disco
Supported Hardware13ZTE MF112 [67]v5.x andhigherPower issues on mipsbe boards USBHuawei ET127 v5.x andhigher3GHuawei EC1261 v5.x andhigherUSBHuawei E1
API in VB dot NET157 Send("/login") Send("=name=" + user) Send("=response=00" + EncodeP
API in VB dot NET158 Case 0 output.Add(o) If o.Substring(0, 5) = &quo
API in VB dot NET159 Dim tmp = BitConverter.GetBytes(l Or &HE0000000) Return New Byte() {tmp(3), tmp(2), tmp(1),
RouterOS PHP class160RouterOS PHP class•• Author: Kamil Trzcinski•• E-mail: ayufan(at)osk-net(dot)pl• WWW: [1]•• License: GPL•• added callbacks•• adde
RouterOS PHP class161•• static function connect($host, $login, $password, $port = 8728, $timeout = 5)Connects to new RouterOS using specified "ho
RouterOS PHP class162 [tx-ccq] => 95 [p-throughput] => 5361 [ack-timeout] => 30 [last-ip] => 1
RouterOS PHP class163Array( [00:1F:1F:XX:XX:XX] => Array ( [.id] => *2 [interface] => ap11 [mac-ad
RouterOS PHP class164$conn->unsett("/queue/simple", "*10", "time");•• function btest($address, $speed = "1M"
RouterOS PHP class165 [snr] => 45 [radio-name] => 3713 ))<?require_once(dirname(__FILE__)."/routeros.class.
RouterOS PHP class166 $name = $name[0]; if($dests[$name]) die("destination $dest already defined!\n"); $tag = $conn->btest
Supported Hardware14Nokia Datacard CS-11 & CS-15 v5.14 andhigherUSBZTE MF821 v5.15 andhigherUSBHuawei K4510 [79]v5.15 andhigherUSBHuawei E173s v5.
RouterOS PHP class167 } // not running if($results["status"] != "running") { // state changed if($status[$dest] != $res
RouterOS PHP class168 if($data < $multi*$multi) { return round($data/$multi, 1) . "k$postfix"; } if($data < $multi*$multi*$multi
RouterOS PHP class169 $lines = array(); foreach($dests as $dest=>$desc) { $lines[] = array("host"=>$desc["dest"], "
RouterOS PHP class170left-value, right-value - either string or variableif %version% ~= 4.*# execute commands for version 4.*else# execute commands fo
RouterOS PHP class171Add new section alias of type to configuration update with comma delimeted group keys and list of default_key.See RouterOSParser:
RouterOS PHP class172Add or set config for specified short command.$parser->config("firewall-filter", "action=drop chain=forward&quo
RouterOS PHP class173$parser->parseFile(array("config line 1", "config line 2", "config line 3"));•• function call($c
RouterOS PHP class174$parser->update($conn); // perform update?># load predefined global OSPF configurationrequire ospf.cfg# set device name, cl
RouterOS PHP class175redistribute-rip=no redistribute-bgp=no metric-default=2 metric-connected=2 metric-static=1 metric-rip=1 metric-bgp=1endif# add s
API command notes176API command notesSummaryThis page contains some information about details of API commands, examples or use-cases. For more detaile
Supported Hardware154G LTE cardsLTE should be configured under the new "/interface lte" menuModel Tested RouterOSversionComments FormatBandR
API command notes177result of double Tab[admin@MikroTik] > ip address add broadcast comment copy-from disabled netmask network address int
API command notes178All this boils down to this, where XX is encoded word legth, aaaa is word and 0x00 is terminating zero single linesentenceXXaaaa0x
API command notes179!fatal!fatal can be received only in cases when API is closing connection:•• too many commands are sent to router prior login•• th
API command notes180will result in: !trap =category=4 =message=already have device with such name !doneWhile adding several entries with same name as
API command notes181=tx-bits-per-second=11266!re=rx-packets-per-second=8=rx-drops-per-second=0=rx-errors-per-second=0=rx-bits-per-second=14179=tx-pack
API command notes182Example/ping=address=192.168.88.1=count=3In this case ping returned after duration*count seconds, where duration was default 1 sec
API command notes183!doneCancel taggingYou may cancel every previously executed task. Note however how cancel behaves with specified tag and without.E
API command notes184Example with specified tagCommand execution./ping=address=google.com.tag=22Reply itself.!re=host=5.226.127.144=size=56=ttl=61=time
API command notes185.tag=22Canceling with additional errorsCancel failed /tool fetch via http. 3 is that tag of /tool/fetch, 7 is a /cancel tag itself
API Ruby class186API Ruby classRuby GEMThe API Ruby class(es) are now packaged together as a Ruby GEM. The latest GEM is available for download fromth
Supported Hardware168GB Seagate ST1 CF microdrive V V NA ? ?64MB Nokia microSD NA NA ? V ?512MB Kingston microSD NA NA V ? ?1GB Apacer microSD NA NA V
API Ruby class187<<< END-OF-SENTENCE>>> '!trap' (5)>>> 'message=cannot log in' (21)>>> '.
API Ruby class188>>> '!re' (3)>>> '.id=*5' (6)>>> 'name=ether1' (11)>>> 'type=e
API Ruby class189>>> 'mtu=1524' (8)>>> 'l2mtu=1524' (10)>>> 'bytes=26909135851/15002882324' (
API Ruby class190>>> '!re' (3)>>> '.id=*5' (6)>>> 'name=ether1' (11)>>> 'type=e
API Ruby class191>>> 'comment=' (8)>>> '.tag=2' (6)>>> END-OF SENTENCE<<< '/cancel'
API Ruby class192# output until we "cancel" the command. We only want to receive 10 responses:$reply_limit = 10# Execute the command:$reply
API Ruby class193<<< '/interface/monitor-traffic' (26)<<< '=interface=ether1' (17)<<< '=.proplist=
API Ruby class194{"!re"=>nil, "rx-bits-per-second"=>"3712135", "tx-bits-per-second"=>"28404"
API Ruby class195>>> END-OF SENTENCEUpdating DNS settings on multiple devicesImagine I have a list of RouterOS devices that all need primary
API Ruby class196 ## for it to complete (either with a '!done' or '!trap' response) before ## executing the callback code bl
ContentsArticlesMikroTik RouterOS 1Hardware 2Supported Hardware 2Bandwidth Managment and Queues 24Firewall 25Monitoring 26User/Routing 27Scripts 29Tun
Supported Hardware17SparkLAN WMIA-165G miniPCI RB1xx / RB3xx / RB4xx /RB5xx / RB6xx / x862.9 / 3.x /4.xPerfect, StableSparkLAN WMIA-166AG miniPCI RB1x
API Ruby class197while children > 1 Process.wait children -= 1endOutput might look a bit like:user@host:~/$ ./dnsupdate.rb 10.0.0.4: Connecting..
API Ruby class198One may wonder why not use ?name=foo instead of using the ID parameter. The gem author has discovered thatAPI commands that make chan
API Ruby class199>>> '!done' (5)>>> '.tag=1' (6)>>> END-OF SENTENCE<<< '/interface/monito
API Ruby class200>>> '!re' (3)>>> 'rx-bits-per-second=106012' (25)>>> 'tx-bits-per-second=3952&apo
API Ruby class201>>> '!fatal' (6)>>> 'session terminated on request' (29)>>> END-OF SENTENCE[[{"!r
Librouteros202Librouteroslibrouteros is a free and open-source library written in C which abstracts the API provided by RouterOS. It wasinitially writ
Librouteros203 if->running ? "running" : "stopped", if->enabled ? "enabled" : "disabled"); pr
Librouteros204References[1] http:/ / verplant. org/ librouteros/[2] http:/ / verplant. org/ librouteros/ manpages/ librouteros. 3. html[3] http:/ / gi
API in C205 (section A.5) but excluding the rest of Appendix A. It does not include any code or documentation that is identified in the RFC as bein
API in C206void md5_init(md5_state_t *pms);/* Append a string to the message. */void md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes);
Supported Hardware18TP-Link TL-WN881ND[102]]PCI-e x86 v5.xx,v6.xxv5.xx NOT working not appear in interfaces, v6.x working(6.1 unstable after scan stop
API in C207 any code or documentation that is identified in the RFC as being copyrighted. The original and principal author of md5.c is L. Peter De
API in C208#define T16 0x49b40821#define T17 /* 0xf61e2562 */ (T_MASK ^ 0x09e1da9d)#define T18 /* 0xc040b340 */ (T_MASK ^ 0x3fbf4cbf)#define T19
API in C209#define T63 0x2ad7d2bb#define T64 /* 0xeb86d391 */ (T_MASK ^ 0x14792c6e)static voidmd5_process(md5_state_t *pms, const md5_byte_t *data
API in C210#if BYTE_ORDER == 0 else /* dynamic big-endian */#endif#if BYTE_ORDER >= 0 /* big-endian */ {
API in C211 SET(c, d, a, b, 14, 17, T15); SET(b, c, d, a, 15, 22, T16);#undef SET /* Round 2. */ /* Let [abcd k s i] denote the operatio
API in C212 SET(d, a, b, c, 0, 11, T42); SET(c, d, a, b, 3, 16, T43); SET(b, c, d, a, 6, 23, T44); SET(a, b, c, d, 9, 4, T45); SET
API in C213 pms->count[0] = pms->count[1] = 0; pms->abcd[0] = 0x67452301; pms->abcd[1] = /*0xefcdab89*/ T_MASK ^ 0x10325476; p
API in C214{ static const md5_byte_t pad[64] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
API in C215 struct Sentence **stSentence; int iLength;};// endianness variable...globalint iLittleEndian;// API specific functionsint apiCon
API in C216 * int fdSock; int iLoginResult; struct Sentence stSentence; struct Block stBlock; fdSock = apiConnect("10.0
Supported Hardware19T1/E1Model Form factor Platform ROS ResultFarsite FarSync TE1 PCI x86 3.15 supportedNote: Since v3.15 RouterOS doesn't suppor
API in C217 * Returns a socket descriptor ********************************************************************/int apiConnect(char *szIPaddr, int iPor
API in C218 DEBUG ? printf("Closing socket\n") : 0; close(fdSock);}/********************************************************
API in C219 // get md5 of the password + challenge concatenation md5_init(&state); md5_append(&state, cNull, 1); md5_appen
API in C220 * Encode message length and write it out to the socket ********************************************************************/void writeLen(
API in C221 { cEncodedLength[0] = cLength[2] | 0xc0; cEncodedLength[1] = cLength[1]; cEn
API in C222/******************************************************************** * Write a word to the socket ****************************************
API in C223int readLen(int fdSock){ char cFirstChar; // first character read from socket char *cLength; // length of next message to read.
API in C224 cLength[2] = cFirstChar; cLength[2] &= 0x3f; // mask out the 1st 2 bits read
API in C225/******************************************************************** * Read a word from the socket * The word that was read is returned as
API in C226 free(szTmpWord); DEBUG ? printf("word = %s\n", szRetWord) : 0; return szRetWord;
Supported Hardware20Brand Model Works / Doesn'tgeneric USB flash drive WorksKingston DataTraveler 2GB WorksSFP modulesBrand Model Rate Connector/
API in C227 } } // if any errors, get the next sentence if (stReturnSentence.iReturnValue == TRAP || stReturnSen
API in C228 return stBlock;}/******************************************************************** * Initialize a new block * Set iLength to
API in C229}/******************************************************************** * Add a sentence to a block * Allocate memory and add a sentence to
API in C230 stSentence->iLength = 0; stSentence->iReturnValue = 0;}/******************************************************************
API in C231/******************************************************************** * Add a partial word to a sentence struct...useful for concatenation
API in C232 ********************************************************************/char *md5ToBinary(char *szHex){ int di; char cBinWork[3];
API in C233 sprintf(szReturn + di * 2, "%02x", binaryDigest[di]); } return szReturn;}/*********************************
API in C234 } // now look @ the second car in the 16^0 place if (cToConvert[1] == 'f' || cToConvert[1] == 'F
API in C235 { int testWord; char testByte[sizeof(int)]; } endianTest; endianTest.testWord = 1; if (endianTes
API in C236 char *szIPaddr; char *szPort = "8728"; // default port string int iPort; // default port int cha
Supported Hardware21Ingellen INSP-SX-MM 1,25G LC, MM 850 RB2011LS-IN Works!AXCEN AXGT-R1T4-05I1 10/100/1000 RJ45, Cat6 - RB2011LS-IN Works!AXCEN AXGD-
API in C237 // convert port string to an int iPort = atoi(szPort); } iInteractiveMode ? printf("Connecting to API
API in C238 { writeSentence(fdSock, &stSentence); // receive and print response blo
API ActionScript 3 class239API ActionScript 3 classThese are ActionScript 3 classes for working with RouterOS v3 API. You can take it, edit it and use
API ActionScript 3 class240 public function login(u:String, p:String) { doLogin = 1; user = u;
API ActionScript 3 class2410xff); data.writeByte(len & 0xff); } else {
API ActionScript 3 class242 // Send challenge response s
API ActionScript 3 class243 len = ((len1 & 63) << 8) + readUnsignedByte(); } else
API ActionScript 3 class244 if (str.substr(0,1) == '!') tag = "";
API ActionScript 3 class245 }}Example 1// Short example that outputs wireless registration-table every secondimport ApiSocket;import ApiEvent;var
API ActionScript 3 class246 trace(evt.data[i]['mac-address']) trace(" " + evt.data[i]['sig
Supported Hardware22•• USB_HSO•• USB_USBNETAX88178 (USB2.0 Gigabit Ethernet) recognized but not working.References[1] http:/ / wiki. mikrotik. com/ wi
API Delphi Client247TRosApiResultThis class gives you an ability to work with data returned from queries. Each command execution is "isolated&quo
API Delphi Client248if RouterOS.Connect('192.168.0.1', 'admin', 'password') thenbegin //we are connected successfullyen
API Delphi Client249 begin ShowMessage('Done'); ResListen.Free; tmrListen.Enabled := False; Break; end; Memo1.L
API Delphi250function send_command(cmd_arr: array of string): integer;Send the strings contained in the array, then send a #0 (example:res:=send_comma
API Delphi251The API_STUDIO applicationI usually develop using mikrotik API and the API STUDIO allow me to test API commands before implementing itin
API Delphi252DOWNLOADSPlease refer to this forum thread for download: API_STUDIO [4]. The download contain all source code and theexecutable (compiled
API in C Sharp253 } public void Send(string co) { byte[] bajty = Encoding.ASCII.GetBytes(co.ToCharArray());
API in C Sharp254 else { if (tmp[3] < 0xC0) {
API in C Sharp255 o += (Char)connection.ReadByte(); } } return output; } byte[]
API in C Sharp256 System.Security.Cryptography.MD5 md5; md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
Supported Hardware23[49] http:/ / www. novatelwireless. com/ images/ pdf/ Merlin_X720_Datasheet. pdf[50] http:/ / www. novatelwireless. com/ content/
API in C Sharp257Example 2Block SMTP port and specific Ip rule by Oguzhanusing System.IO;using System.Net.Sockets; class Program { static
API PHP class258API PHP classThis is PHP class for working with RouterOS API. You can take it, edit it and use it as you need.NOTE - The class as show
API PHP class259Class<?php/***************************** * * RouterOS PHP API class v1.5 * Author: Denis Basta * Contributors: * Nick Barnes *
API PHP class260 * * @return void */ function encode_length($length) { if ($length < 0x80) { $length = chr($len
API PHP class261 $this->write('=response=00' . md5(chr(0) . $password . pack('H*', $MATCHES[0][1])))
API PHP class262 foreach ($response as $x) { if (in_array($x, array( '!fatal',
API PHP class263 ))) { if ($x == '!re') $CURRENT =& $PARSED[];
API PHP class264 return $array_new; } else { return $array; } } /** * Read data from Router
API PHP class265 } } else { $LENGTH = $BYTE; } // If we have got more characters to rea
API PHP class266 $com = trim($com); fwrite($this->socket, $this->encode_length(strlen($com)) . $com);
Supported Hardware24[108] http:/ / www. compex. com. sg/ fullDescription. aspx?pID=96[109] http:/ / www. compex. com. sg/ fullDescription. aspx?pID=32
API PHP class267Example 1<?phprequire('routeros_api.class.php');$API = new routeros_api();$API->debug = true;if ($API->connect(&apo
API PHP class268<?phprequire('routeros_api.class.php');$API = new routeros_api();$API->debug = true;if ($API->connect('111.111
API PHP class269 [2] => Array ( [.id] => *3 [name] => ether3 [mtu] => 1500 [type] => ether
API PHP class270 [strength-at-rates] => -73dBm@1Mbps 4m4s640ms,-73dBm@2Mbps 4m58s730ms,[email protected] 42s450ms,-73dBm@11Mbps 90ms [tx-ccq] =&g
API PHP class271$API->write('~active-address~"1.1."');$ARRAY = $API->read();print_r($ARRAY);Returns a number with leasesMikr
MikroTik for Mac272MacPorts and wineIf you cannot get Darwine to work, you can install Wine using Mac Ports at http:/ / guide. macports. org/ OnceMacP
MikroTik for Mac273Making Home/End/PgUp/PgDown work in Terminal.appIt really annoys me that by default you have no Home/End functionality in terminal.
Assorted examples274Assorted examples•• Automated Backups•• Automatic Backup with Centralized Storage - By Ashish Patel•• Bash scripts for Linux/Mysql
Article Sources and Contributors275Article Sources and ContributorsMikroTik RouterOS „Source: http://wiki.mikrotik.com/index.php?oldid=22355 „Contribu
Article Sources and Contributors276MikroTik for Mac „Source: http://wiki.mikrotik.com/index.php?oldid=22848 „Contributors: Chenull, Donie, Eugene, Hen
Firewall25FirewallMiscellaneous•• Basic universal firewall script•• Attempt To Detect And Block Bad Hosts•• Securing A New RouterOS Install•• Spam Fil
Image Sources, Licenses and Contributors277Image Sources, Licenses and ContributorsImage:Shot.jpg „Source: http://wiki.mikrotik.com/index.php?title=Fi
Firewall26Web-Proxy or External Cache Servers (SQUID, ISA, any Open Source CacheServer)• Examples for Use Caching Server (5 Main Idea’s)•• Squid3+TPRO
API in C Sharp 252API PHP class 258MikroTik for Mac 271Assorted examples 274ReferencesArticle Sources and Contributors 275Image Sources, Licenses and
User/Routing27User/RoutingRouting•• Split horizon•• Dynamic Routing Concepts•• ECMP load balancing with masquerade•• NTH load balancing with masquerad
User/Routing28•• BGP Load Balancing with two interfacesOSPF•• Steps of making neighborship between OSPF routers•• OSPF and Point-to-Point interfaces••
Scripts29ScriptsSetup•• How to Make an Automated Configuration and Uninstall•• A script to set up WAN/LAN/WLAN to get you startedGeneral•• Traffic Pri
Scripts30• Get active VPN connections via e-mail (PPTP and L2TP)•• Get active VPNs, connected wireless stations, active Hotspot sessions and connected
Scripts31System Maintenance• BackupROS (Centralized Backups) - by Nahuel Ramos (new!)•• Centralized Automated Backups via Email with Procmail and Perl
Tunnels32Tunnels•• PPtP Server / VPN•• PPtP Client / VPN•• PPTP VPN - multiple ADSL remote locations to Cental Office•• IPSec VPN with Dynamic Routing
Wireless Setups33•• Bridge Network With Wireless Modes•• Wireless WDS Mesh•• Connect to an Available Wireless NetworkReferences[1] http:/ / www. mikro
Manual:MPLS34Forwarding TableSub-menu: /mpls forwarding-tableEntries in this sub-menu shows label bindings for specific routes that will be used in MP
Manual:MPLS35Property Descriptioncomment (string; Default: ) Short description of the interfacedisabled (yes | no; Default: no) If set to yes then thi
Manual:MPLS36Remote BindingsSub-menu: /mpls remote-bindingsSub-menu shows label bindings for routes received from other routers. This table is used to
MikroTik RouterOS1MikroTik RouterOSThis is a user editable how-to page, anyone can contribute! If you havesome firewall rules or scripts to share, sim
Manual:Virtualization37•• offer virtual routers with VPN solutions that give a network administrator customer his own router on a highspeedbackbone to
Use Metarouter to Implement Tor Anonymity Software38Why use Tor?From the Tor web site [2]"Using Tor protects you against a common form of Interne
Use Metarouter to Implement Tor Anonymity Software39These commands set up the necessary bridges and add interfaces to the natBridge. In this example,
Use Metarouter to Implement Tor Anonymity Software40add chain=dstnat in-interface=ether1 protocol=tcp dst-port=8118 \ action=dst-nat to-addresses=10.
Use Metarouter to Implement Tor Anonymity Software41The first command names the new Metarouter virtual machine. The second command sets up a dynamic i
Use Metarouter to Implement Tor Anonymity Software42t rely on it for strong anonymity. (Running on Linux mips)Aug 18 00:45:18.923 [notice] Choosing de
User/IPv643User/IPv6•• Overview and examples•• Setting up an IPv6 tunnel via a tunnel broker•• Creating loopback address for IPv6•• OSPFv3 with Quagga
The Dude44The DudeThe Dude [1] is a free application by MikroTik, which can dramaticallyimprove the way you manage your network environment.It will au
The Dude45•• Graphing Client Signal Strength•• Managing Multiple Remote Bridged Routers•• Dude as Syslog Server•• Dude como Servidor Syslog (el españo
User Manager46Concepts explainedCommon•• Customers•• Users•• Routers•• Sessions•• Payments•• Reports•• Logs•• Customer permission levels•• Character c
Hardware2Hardware•• RB 750G - Getting Started HelpSupported HardwareThis page should be edited by the user community to reflect their tested hardware
User Manager47Customer page•• Setup•• How to find it?•• Sections•• Status•• Routers•• Credits•• Users•• Sessions•• Customers•• Reports•• LogsUser page
User Manager48•• How to create timed Voucher?•• Cannot access User Manager WEB interface•• Incorrect time shown for sessions and credits•• User Manage
API PHP package49"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <
API PHP package50 <td><?php echo $entry('message'); ?></td> </tr><?php } ?>
API PHP package51 </li> <li> <input type="submit" id="act&q
API PHP package52 //Here's the fun part - actually changing the password $setRequest = new RouterOS\Request('/ip hotspot user
API PHP package53 <input type="password" id="password2" name="password2" value="" /&
API PHP package54 $printRequest->setQuery( RouterOS\Query::where('email', $_POST['email'])->andWhere(&apos
API PHP package55 <?php } ?> <form action="" method="post"> <ul>
API PHP package56 //Adjust RouterOS IP, username and password accordingly. $client = new RouterOS\Client('192.168.0.1', 'admin&ap
Supported Hardware3Intel •D945GCNL 3.11 Works fine but integrated ethernet (just disable) goes up and down on rebootsmulti-cpu= yes. shared IRQ for PC
API in C using winsock57API in C using winsockThis is an implementation of RouterOS API written on C that using winsock2 for compatibility with Window
API in C using winsock58// Updated 28 August 2011 by hel#include <stdio.h>#include <winsock2.h>#pragma comment(lib, "ws2_32.lib"
API in C using winsock59 } // determine endianness of this machine // iLittleEndian will be set to 1 if we are // on a little endi
API in C using winsock60 stReadSentence = readSentence(fdSock); DEBUG ? printSentence (&stReadSentence) : 0; if (stReadSenten
API in C using winsock61 DEBUG ? printSentence (&stReadSentence) : 0; if (stReadSentence.iReturnValue == DONE) { return
API in C using winsock62 else { cEncodedLength[0] = cLength[2] | 0x80; cEncodedLength[1] = cLe
API in C using winsock63 cEncodedLength[2] = cLength[2]; cEncodedLength[3] = cLength[3]; } sen
API in C using winsock64 writeWord(fdSock, "");}/******************************************************************** * Read a me
API in C using winsock65 recv(fdSock, &cLength[1], 1, 0); recv(fdSock, &cLength[2], 1, 0);
API in C using winsock66 } iLen = (int *)cLength; } // assume 1-byte encoded length...same on both LE and BE sys
Supported Hardware4Xen 3.2.1 on Intel C2Q 4.x Installs and runs fine on HVM bootloader using Intel VT technology. Evenswitches to RouterOS console fro
API in C using winsock67 // read iBytesToRead from the socket iBytesRead = recv(fdSock, szTmpWord,
API in C using winsock68 // check to see if we can get a return value from the API if (strstr(szWord, "!done") != NULL
API in C using winsock69 DEBUG ? printf("readBlock\n") : 0; do { stSentence = readSentence(fdSock); DEB
API in C using winsock70/******************************************************************** * Print a block. * Output a Block with printf. *********
API in C using winsock71 // update iLength stBlock->iLength = iNewLength; DEBUG ? printf("addSentenceToBlock stBlock->iLengt
API in C using winsock72 else { stSentence->szSentence = realloc(stSentence->szSentence, iNewLength * sizeof stSentence->
API in C using winsock73 printf("Sentence iReturnValue = %d\n", stSentence->iReturnValue); for (i=0; i<stSentence->iLengt
API in C using winsock74/******************************************************************** * MD5 helper function to calculate and return hex repres
API in C using winsock75 else if (cToConvert[0] == 'c' || cToConvert[0] == 'C') { iAccumulated += 16*12;
API in C using winsock76 DEBUG ? printf("%d\n", iAccumulated) : 0; return (char)iAccumulated; }/*****************************
Supported Hardware5Intel 82599ES - Intel X520 series adapters 5.x & 6.x Works, fine! Note: has SFP transceiver vendorrestrictions: [3]D-Link DFE-5
Manual:API Python377Manual:API Python3SummarySince python language have introduced changes to syntax when going from 2.x to 3.x some adjustments had t
Manual:API Python378 def writeSentence(self, words): ret = 0 for w in words: self.writeWord(w) ret += 1
Manual:API Python379 self.writeStr(chr((l >> 16) & 0xFF)) self.writeStr(chr((l >> 8) & 0xFF)) sel
Manual:API Python380 if s == '': raise RuntimeError("connection closed by remote end") ret += s.decode(&apos
Manual:API Python381if __name__ == '__main__': main()file|api client in python3 [1]References[1] http:/ / wiki. mikrotik. com/ images/ 6/
API multiplatform from townet82};USE OF MKAPI LIBRARYTo write a C program using MkApi you need to include the library when you compile your applicatio
API multiplatform from townet83 { AnsiString line = parse_line(&c); //Here the variable line contains only a line from the reply. char
API multiplatform from townet84MKDeal - tool di interfaccia mikrotik uso: MKDeal ip utente password -c comando (per comandi one-shot) MKDealip utente
API multiplatform from townet85back from a command, are ever integer numbers, but this ones doesn’t start from the number zero, like working intelnet.
MikroNode86MikroNodeMikronodeFull-Featured asynchronous Mikrotik API interface for NodeJS [1]. var api = require('mikronode'); var connectio
Supported Hardware6Dell PowerEdge R210 5.1 - 5.6 1U Rackmount. Half-depth (39cm) chassis. Dual port on-board Broadcom 5716 Gigabit Ethernetcontrollers
MikroNode87TODO•• Cleanup login section in connect method.•• Re-design code to hide internal methods and variables.•• Utilize promises.•• Write tests
MikroNode88unaltered.•• channel.close(force)Close the channel. If there are any commands still waiting to be executed, they will be completed beforecl
MikroNode89 chan3.write(['/interface/set','=disabled=yes','=.id=ether1'],function(chan) { chan.on('done&ap
MikroNode90 console.log('Interface: '+JSON.stringify(packet)); }); listenChannel.close(); // This should call
API in Java91API in JavaSummaryRouterOS API access library written in Java. This code is also capable to connect to IPv6 addresses.LicensingCode is pr
API in Java92 } @Override public void run() { String s = ""; while (true) { try { s = aConn.getDat
API in Java93 private DataOutputStream out = null; private DataInputStream in = null; private String ipAddress; private int ipPort; private
API in Java94 * to get IP address of the connection. Reads data from socket created. * @return InetAddress */ public InetAddress getIpAddre
API in Java95 /** * exeecutes already set command. * @return returns status of the command sent */ public String runCommand() { ret
API in Java96 String transition = tmp[tmp.length - 1]; String chal = ""; chal = Hasher.hexStrToStr
Comentários a estes Manuais