❗️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

Zapsani pravidla do mikrotiku externe přes php

Příspěvky, které nespadají do žádného z vytvořených fór.
tom-tom
Příspěvky: 1089
Registrován: 19 years ago

Re: Zapsani pravidla do mikrotiku externe přes php

Příspěvekod tom-tom » 11 years ago

To mi moc efektivní nepřijde, když vezmu v úvahu, že těch pravidel tam bude mít třeba 300 a kvůli jedné IP bude muset v php cyklit a prohledat celé pole.
Přirovnal bych to k mysql, kde budu mít 300 řádků, nechám si vrátit všechny a budu je procházet cyklem, místo abych to odfiltroval přímo v dotazu s WHERE ...

S API jsem si hrál zatím jen tak okrajově, nestačilo by to doplnit o query parametr (nevim, vařím z vody a z toho co se píše k API na wiki)?
Něco jako:

Kód: Vybrat vše

$API->write('/interface/bridge/filter/print', false);
$API->write('?src-address=10.10.10.1/32');
0 x
T-T

[OP]CZMadman
Příspěvky: 44
Registrován: 18 years ago
Kontaktovat uživatele:

Příspěvekod [OP]CZMadman » 11 years ago

Tu verzi od hatatitly jsem taky myslel a udelal jsem podobne reseni, ale je pravda ze to bude vypisovat vse.
Zkousel jsem experimetovat tedy s tim druhym resenim a povedlo se.
Zde je funkcni reseni, kdyby se to treba nekomu hodilo.
<?php
require('routeros_api.class.php');

$API = new routeros_api();
$API->debug = false;
$IP = "10.10.10.1";
if ($API->connect('ip', 'login', 'heslo')) {
$API->write('/interface/bridge/filter/print', false);
$API->write('?src-address='.$IP.'/32');
$ARRAY = $API->read();
$API->disconnect();
}

if (empty($ARRAY)){
echo "Array je prazdnej, IP jeste zapsana neni.";
}
else {
echo "Array neni prazdnej, IP je jiz zapsana.";
}
?>


Děkuji všem za pomoc, hodně zdaru
0 x