Страница 1 из 1

Скрипт для нахождения IP адресов в Address List из одной подсети 0/24

Добавлено: 22 июл 2023, 22:29
OlimpFil
Сможет ли кто-нибудь за вознаграждение написать скрипт: получить список IP адресов из address list "!!!-= RDP BAN =-!!!" у которых первые три октета IP адреса одинаковые, а отличается только последний и таких адресов более четырех. Т.е. найти в address list "!!!-= RDP BAN =-!!!" такие подсети, в которых в одной подсети 4 и более IP адресов, чтобы потом уже вручную заблочить всю подсеть 0/24.

RouterOS 6.49.3

Re: Скрипт для нахождения IP адресов в Address List из одной подсети 0/24

Добавлено: 28 июл 2023, 12:19
Sertik
Писать не хочется. Нужно использовать posix regex. Вот тема в помощь https://forum.mikrotik.com/viewtopic.ph ... 84#p871284
Попробую спросить для Вас на оффоруме, абсолютно бесплатно, конечно, одного знающего человека, для которого такое написать - раз плюнуть ... Если будет выхлоп, выложу.

Re: Скрипт для нахождения IP адресов в Address List из одной подсети 0/24

Добавлено: 02 авг 2023, 09:36
Sertik
Ловите, бесплатно:

Код: Выделить всё

# название нашего адрес-листа
:local list "blocklist"
# лимит наполнения одинаковыми адресами
:local count 4

# наполнение адрес-листа адресами
/ip firewall address-list {
    :local ip2net do={:return [[:parse ":return $($1 & 255.255.255.0)/$2"]]}
    :local addr    0.0.0.0
    :local net     0.0.0.0
    :foreach item in=[find where ([:typeof [:toip $address]]="ip")] do={
        :set addr [get $item address]
        :set net  [$ip2net $addr 24]
        :if ([:len [find where $address in $net]] > $count) do={
            :put "\r\nSearch results for $net"; print where $address in $net
	 add address=$addr list=$list timeout=24h

        }
    }
}

# блокировка
/ip firewall filter add action=drop chain=input comment="Dropping dangerous adresses" src-address-list=$list

Но с оговорочкой ! Скрипт работает не совсем правильно. За правильным - в личку. :-)
Сможете поправить сами - молодец ! тогда будет бесплатно ...