❗️Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz

mikrotik www API

Návody a problémy s konfigurací.
Konycz
Příspěvky: 59
Registrován: 8 years ago

mikrotik www API

Příspěvekod Konycz » 8 years ago

Hoj, mam na mikrotiku vytvoreny FW pravidla... Potreboval bych dostat na sve www stranky prepinac (tlacitka) na vypnuti a zapnuti tohoto pravidla. Resil uz to nekdo ????
0 x

milan.zelina
Příspěvky: 281
Registrován: 17 years ago

Příspěvekod milan.zelina » 8 years ago

způsonů řešení je asi více:
google: mikrotik API
0 x

Konycz
Příspěvky: 59
Registrován: 8 years ago

Příspěvekod Konycz » 8 years ago

vim ze je, ale jestli nekdo uz ma vyzkouseno a pouziva
0 x

milan.zelina
Příspěvky: 281
Registrován: 17 years ago

Příspěvekod milan.zelina » 8 years ago

Jo, před nějakým časem ano, ovšem z Powershellu.
Knihovnu (mikrotik.dll) jsem k tomu stáhnul z odkazu na foru mikrotiku a chodilo to dobře.
(Používal jsem to na nějaké upgrady a restarty).
0 x

Konycz
Příspěvky: 59
Registrován: 8 years ago

Příspěvekod Konycz » 8 years ago

Tak jsem se na to jeste dival, vsude jsou jen priklady pro VB provedeni s pouzim dll knihovny. Ja bych potreboval webovou stranku , kde budou dve tlacitka, jedno pustit a druhy zastavit, a tim by se poustelo a vypinalo jedno pravidlo ve firewallu.

Lze toto udelat ???
0 x

ludvik
Příspěvky: 4448
Registrován: 14 years ago

Příspěvekod ludvik » 8 years ago

Je to obecné API - application programing interface. Takže odpověď je ano, lze to udělat. Vždy je jen otázka v čem, na čem a kým.
0 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

Konycz
Příspěvky: 59
Registrován: 8 years ago

Příspěvekod Konycz » 8 years ago

no hledam nejaky example pro php a nebo www a poradne nemuzu najit. zatim jsem nasel pouze pro VB
0 x

Uživatelský avatar
michnzee
Příspěvky: 189
Registrován: 12 years ago
Bydliště: Praha, Žižkov

Příspěvekod michnzee » 8 years ago

ja pouzivam tuto osvedcenou knihovnu v php http://wiki.mikrotik.com/wiki/API_PHP_class - jsou u toho i klasicke priklady

normalne si v php udelas funkci treba s nejakym klikatkem, ktera ti odesle prikaz do MK, v tvem pripade ......... disabled=yes/no

ja tuto knihovnu pouzivam treba jako levnou sms gateway, na jednom mk mam modem a pres /tool/sms/send/ si odesilam notifikace a funguje to dobre
0 x
::RouterLEGOboard::

Konycz
Příspěvky: 59
Registrován: 8 years ago

Příspěvekod Konycz » 8 years ago

a mohl bych te poprosit o nejakou rychlou ukazku ?? nejsem vubec zbehly v PHP a jedna se mi vazne o jen zapnuti/vypnuti pravidla cislo 2 ve firewallu. Proste bud dve tlacitka kde jedno bude zapnuti a druhy vypnuti a nebo tam bude nejco jako CheckBox a vedle toho potvrzovaci tlacitko..... Dekuji mockrat za pomoc...

PS : zkousim jeden example... tak mi to vypise silenosti, ale ocividne to neco dela, ale tedka hledam tu moznost toho zapnuti a vypnuti jednoho pravidla a to pravidla cislo 2

tohle zkousim :thumbsup:

Kód: Vybrat vše

<?php

require('routeros_api.class.php');

$API = new RouterosAPI();

$API->debug = true;

if ($API->connect('172.16.43.251', 'admin', 'hesloproadmina')) {

   $API->write('/interface/getall');

   $READ = $API->read(false);
   $ARRAY = $API->parseResponse($READ);

   print_r($ARRAY);

   $API->disconnect();

}

?>


ted jsem vyzkousel tohle a to krasne funguje a pridava uzivatele, takze urcite to funguje, jen prijit na spravny prikazy pro enable/disable pravidla

Kód: Vybrat vše

<?php

require('routeros_api.class.php');

$API = new RouterosAPI();

$API->debug = true;

if ($API->connect('172.16.43.251', 'admin', 'hesloproadmina')) {

$API->comm("/ppp/secret/add", array(
          "name"     => "kony",
          "password" => "pass",
          "remote-address" => "172.16.1.10",
          "comment"  => "Kony",
          "service"  => "pptp",
));


   $API->disconnect();

}

?>


tak zkousim tedka nejak polepit tu posloupnost prikazu a nejde to

Kód: Vybrat vše

<?php

require('routeros_api.class.php');

$API = new RouterosAPI();

$API->debug = true;

if ($API->connect('172.16.43.251', 'admin', 'hesloproadmina')) {

$API->comm("ip/firewall/set=.id=1?disable=yes");


   $API->disconnect();

}

?>
0 x

Uživatelský avatar
michnzee
Příspěvky: 189
Registrován: 12 years ago
Bydliště: Praha, Žižkov

Příspěvekod michnzee » 8 years ago

mrkni jeste sem, jina php api knihovna a je tu primo cela funkce uz vymyslena https://github.com/nunenuh/mikrotik-api/blob/master/src/MikrotikAPI/Commands/IP/Firewall/FirewallFilter.php

dej si pozor na ty lomitka / v prikaze /

Kód: Vybrat vše

public function disable($id) {
        $sentence = new SentenceUtil();
        $sentence->addCommand"("/ip/firewall/filter/disable);
        $sentence->where(".id", "=", $id);
        $this->talker->send($sentence);
        return "Sucsess";
    }
0 x
::RouterLEGOboard::

Konycz
Příspěvky: 59
Registrován: 8 years ago

Příspěvekod Konycz » 8 years ago

a kde tady budu definovat IP adresu routeru a jmeno a heslo ??? a to dam na to tlacitko jen tento odstavec ?? a knihovnu myslis prave to FirewallFilter.php to je ta knihovna, ktera musi byt primo u toho php souboru ???

Kód: Vybrat vše

public function disable($id) {
        $sentence = new SentenceUtil();
        $sentence->addCommand"("/ip/firewall/filter/disable);
        $sentence->where(".id", "=", $id);
        $this->talker->send($sentence);
        return "Sucsess";
    }



takze vse jsem nakopiroval na server.... celou slozku MikrotikAPI do adresare router. ve slozce Entity jsem upravil soubor Auth.php kde uvnitr jsem dopsal adresu routeru, login a heslo

Kód: Vybrat vše

     */
    private $host = 172.16.43.251;

    /**
     *
     * @var int
     */
    private $port = 8728;

    /**
     *
     * @var string
     */
    private $username = admin;

    /**
     *
     * @var string
     */
    private $password = adminheslo;



potom jsem vytvoril soubor zapnuto.php

Kód: Vybrat vše

<?php

namespace MikrotikAPI\Commands\IP\Firewall;

use ..\router\Talker\Talker,
    ..\router\Util\SentenceUtil;
/**
 * Description of Filter
 * @author      Lalu Erfandi Maula Yusnu nunenuh@gmail.com <http://vthink.web.i$
 * @copyright   Copyright (c) 2011, Virtual Think Team.
 * @license     http://opensource.org/licenses/gpl-license.php GNU Public Licen$
 * @category    Libraries
 */
class FirewallFilter {
    /**
     *
     * @var Talker $talker
     */
    private $talker;
    function __construct(Talker $talker) {
        $this->talker = $talker;
    }
    /**
     *
     * @param type $param array
     * @return type array
     * This method is used to add the firewall filter
     */
    public function disable($id) {
        $sentence = new SentenceUtil();
        $sentence->addCommand("/ip/firewall/filter/disable");
        $sentence->where(".id", "=", $id);
        $this->talker->send($sentence);
        return "Sucsess";
    }
}


ale pri souboru pres prohlizec to nic neudela a je cista obrazovka
0 x

Konycz
Příspěvky: 59
Registrován: 8 years ago

Příspěvekod Konycz » 8 years ago

tak ted zkousim toto

Kód: Vybrat vše

<?php

require('routeros_api.class.php');

$API = new RouterosAPI();

$API->debug = TRUE;

if ($API->connect('172.16.43.251', 'admin', 'hesloadmin')) {
$API->Send("/ip/firewall/filter/set",false);
$API->Send("=disabled=yes",false);
$API->Send("=.id=0",true);
$API->disconnect();

}

?>


a vypise to

Kód: Vybrat vše

Connection attempt #1 to 172.16.43.251:8728... <<< [6] /login >>> [5/5] bytes read. >>> [5, 39]!done >>> [37/37] bytes read. >>> [37, 1]=ret=0d94b0a3082692b1df4151b1617ed7f6 <<< [6] /login <<< [11] =name=admin <<< [44] =response=0040a71b8e4dbc781553be264f1a3b243f >>> [5/5] bytes read. >>> [5, 1]!done Connected...


a nic se nestane na routeru
0 x

Konycz
Příspěvky: 59
Registrován: 8 years ago

Příspěvekod Konycz » 8 years ago

Tak uz vazne nevim. Byl by nekdo ochoten mi pripravit fungujici php stranku s mojim pozadavkem ??? bud dve tlacitka nebo jeden ChackBox a tim zapinat a vypinat pravidlo ??? nebo vic checkboxu (tlacitek) jen abych si doplnoval cisla ID pravidel

Rad zaplatim nejaky mensi poplatek....

Uz na to nemam nervy a porad se motam v bludnym kruhu
0 x

Uživatelský avatar
michnzee
Příspěvky: 189
Registrován: 12 years ago
Bydliště: Praha, Žižkov

Příspěvekod michnzee » 8 years ago

ted jsem akorat prisel k netu, kdepak, ja jsem posilal jen tu funkci (jedna z mnoha) ktera zrovna obsluhuje to, co ty potrebujes - tzn aktivaci a deaktivaci. v kazdem pripade to bylo jen na ukazku, vychazel bych z toho prvniho api co jsem posilal (tu prvni knihovnu pouzivam, ten druhy odkaz byla jen chvilka googleni) a upravil bych syntaxi. zkusim ti to spichnout
0 x
::RouterLEGOboard::

Konycz
Příspěvky: 59
Registrován: 8 years ago

Příspěvekod Konycz » 8 years ago

byl bych ti moc vdecen.... jedna se mi o jednu vec... mit jednoduchou spravu nad pravidlama pres www rozhrani na mobilu. abych mohl jednoduse zapnout vypnout pravidlo
0 x