Zde je (snad) funkční skript:
# Conection remmover
# By Grunt
################################################
# Definice lokalnich promenych
# Ip Adresa ktera ma byt z connection odstranena
:local ip 192.168.2.105
###############################################
:foreach i in=[/ip firewall connection find] do={
:if (([:find [/ip firewall connection get $i src-address] $ip]=0) || ([:find [/ip firewall connection get $i dst-address] $ip]=0)) do={
/ip firewall connection remove $i
# :log info ([/ip firewall connection get $i src-address] . " - " . [/ip firewall connection get $i dst-address] . " odstranen")
}
}
Tak koukam, ze zadna chytra hlava se k tomu nema...
Třeba to bude tím ,že žádná chytrá hlava neví k čemu by něco takového mohlo být dobré.
Script probehne, ale nic to neudela
Pozor!src-address v /ip firewall connection neobsahuje IP adresu ,ale IP (třeba 192.168.2.4) ,tudíž nebude souhlasit s IP ,kterou máte v () nikdy.Musíte v něm ještě hledat IP třeba pomocí funkce .
V logu vidim nejakou zmet asi hexa cisel, co nevim co znamenaj...
napr. *88B3 az *88CD.
Jsou to symbolické adresy (resp. symbolické odkazy ,či jak to nazvat). Pokud chcete v konzoli mazat musíte nejdříve přiřadit pravidlům nějaká čísla pomocí print. Avšak to by ve scriptech příliš nešlo (třeba z toho důvodu že std. výstup print jde do ztracena(/dev/null) a také z toho důvodu že mezi print a remove by mohlo třeba přibyt další pravidlo ,které by rozházelo číslování). A tak má každé pravidlo z každé sekce tuto jedinečnou symbolickou adresu na kterou se můžete kdikoliv a kdekoliv odkazovat(Je jedinečná pro celý systém).
Ted uz mi je jasne, ze se nemuze vykonat remove $i, protoze nemuze smazat *88B3, ale ceka treba cislici 1.
Kdepak ,ve skriptech(a nejen v nich) se maže právě pomocí těchto symbolických adres.Viz. manuál...