BigElectricCat
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Блин... опера снова сломалась(( сейчас перенаберу. В общем. Описание батника.. лень его выискивать Начальные условия: сервер виндовый с мерак маил на отдельном IP (так исторически случилось, ставилось на поглядеть версию да так и осталось уже 9 год остаётся). Банить я начал когда надоело переписываться с абузами хостеров и прочих провайдеров домашнего интернета.., года 3 назад. На определённый почтовый ящик навешено исполнение скрипта для писем. Скрипту первым параметром передаётся IP адрес источника письма (в примере это 37.0.73.1): пример Далее в скрипте выполняется цикл который парсит ответ от запроса 'whois %~1', находим нашу заветную строку (из моего сообщения выше) и вычленяем из неё сеть включающую этот адрес и название автономки (для именования правила в стенке). Сетка сверяется с белым списком (сетями, которые не должны попадать в бан, у меня их всего 4 шт, так что всё просто). А далее по Netsh Advfirewall Firewall Add rule name="%FoundedAS%" dir=in protocol=tcp localport=25 remoteip="%Founded_IPNET%" action=block (написал по памяти, не пинайте если обшибся в акшене, мне на маке сложно виндовые команды вспоминать в описание надо бы вставить дату «когда», но это снова надо лезть на почтовик разбираться что там и где.. лень!) запихиваем правило в стенку. Поскольку я иногда ездяю этими европами, то пришлось сделать другой ящик с другом скриптом: из темы взять адрес и повторить вариант скрипта выше, но для нахождения уже имени правила (по имени автономки) и удалить его. PS: в винде разбирать адреса разделённые точкой можно элементарно,.. через call и выделение части имени переданной переменной в функцию %~x1. |