Najde pocet opakujucich hostname podla zadaneho poctu
/system/script
add name=hotspot_search_hack policy=ftp,read,write,policy,test,winbox source=":local lease\r\
\n:local hostname\r\
\n:local pcname\r\
\n:local timer\r\
\n:global hacklist \"\"\r\
\n \r\
\n# zapise do pola vsetky dhcp lease\r\
\n:set lease [/ip dhcp-server lease find dynamic]\r\
\n\r\
\n:foreach h in=\$lease do={\r\
\n# zisti a zapise premennu do hostname\r\
\n:set hostname [/ip dhcp-server lease get \$h host-name] \r\
\n# porovna ci hostname nie je prazdne a zapise do pola pcname vsetky hostname okrem iPhone apod...\r\
\n:if (([:len \$hostname] >0) && (\$hostname!=\"iPhone\") && (\$hostname!=\"iPhone-2\")) do {\r\
\n:set pcname ( [:toarray \$pcname] + \$hostname)\r\
\n}\r\
\n}\r\
\n\r\
\n# prejde cele pole pcname\r\
\n:foreach h in=\$pcname do={\r\
\n# nastavi v kazdom prejdeni pola pcname hodnotu hh-pocet opakujucich sa hostname na 0\r\
\n:local hh 0\r\
\n# kontroluje ci hacklist obsahuje premennu z pcname H\r\
\n:if ([:find \$hacklist \$h]>=0) do={} else={\r\
\n:foreach k in=\$pcname do={ :if (\$k=\$h) do={ :set hh (\$hh + 1) } }\r\
\n# kontroluje pocet rovnakych hostname a aplikuje az od poctu 3 a viac\r\
\n:if (\$hh>2) do={ \r\
\n:set hacklist ( [:toarray \$hacklist] + \$h)\r\
\n}\r\
\n}\r\
\n}\r\
\n\r\
\n# zapise raz za hodinu stav premennej hacklist \r\
\n:set timer [:pick [/system clock get time] 3 5]\r\
\n:if (([:len \$hacklist] > 0) && (\$timer >= \"45\")) do={\r\
\n:log warning \$hacklist\r\
\n}"
Odstrani najdene rovnake hostname i cookie
/system/script
add name=hotspot_remove_hack policy=ftp,read,write,test,winbox source="# pouziva globalnu premennu hacklist\r\
\n:global hacklist\r\
\n\r\
\n:foreach hostname in=\$hacklist do={\r\
\n:foreach i in=[/ip dhcp-server lease find host-name=\$hostname] do={\r\
\n:local dhcpip [/ip dhcp-server lease get \$i address]\r\
\n:local hotspotip [/ip hotspot active find address=\$dhcpip]\r\
\n\r\
\n:if ([:len \$hotspotip] >0) do {\r\
\n:local usr [/ip hotspot active get \$hotspotip user] \r\
\n:log warning (\$hostname . \" \" . \$hotspotip . \" \" . \$usr)\r\
\n/ip hotspot active remove \$hotspotip\r\
\n/ip hotspot cookie remove [find user=\"\$usr\"]\r\
\n}\r\
\n}\r\
\n}"
Neviem, ako velmi je to odlisne od povodnej verzie z forum.mikrotik.com . Az teraz vidim, ze by sa to tu niekomu hodilo. 8)