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

Скрипт для загрузки из файла и обновления /etc/hosts (статических соответствий имя-адрес в DNS)

Добавлено: 29 апр 2017, 19:54
panacorn
Доброго времени суток!

Пользуюсь мобильным интернетом, часто меняю симки, далеко не на всех симках стоит запрет подписок.
В сети есть файл /etc/hosts, в котором перечислены все известные сайты с платными подписками и все они заворачиваются на специальный адрес (предупреждающий о том, что была возможность попасть на подписку) или просто на локалхост.

Есть желание прописывать все эти хосты в /etc/hosts на Микротике (в список статических адресов в разделе IP -> DNS -> Static).
Сейчас сделал это скриптом. Но в будущем файл будет обновляться. А тупой скрипт с кучей команд типа ip dns static> add name=www.example.com address=10.0.0.1 вылетает при попытке добавить уже имеющееся имя хоста.

Как бы сделать так, чтобы скрипт читал типовой файл формата hosts с комментариями и парами имя - адрес. Комментарии чтобы отбрасывал, а нормальные строчки проверял бы на присутствии в Микротике и в случае отсутствия, добавлял бы.

Иными словами:
Читаем строчку из файла, пока есть чего читать {
Если коммент - отбрасываем иначе - проверяем на наличие в списке ip - dns - static
если пара отсутсвует в ip - dns - static, то добавляем
}

Пожалуйста, подскажите, как это реализовать в виде нормального RouterOS скрипта

Заранее спасибо!

Re: Скрипт для загрузки из файла и обновления /etc/hosts (статических соответствий имя-адрес в DNS)

Добавлено: 29 апр 2017, 21:36
podarok66
Сначала прочтите вот это. Это конечно не по вашей проблеме, но принцип обработки файла будет понятен. Вот как выбирать ваши адреса, я пока не могу сказать, мне кажется на сервере обработать файл hosts до приемлемого вида проще на порядок, и комментарии убрать и с разделителями поработать. А уж потом обработанный можно и Микротику подсовывать. Учитывайте размер обрабатываемого файла, в статейке про это упоминается.

Re: Скрипт для загрузки из файла и обновления /etc/hosts (статических соответствий имя-адрес в DNS)

Добавлено: 29 апр 2017, 21:40
Dragon_Knight
Посмотрите как это реализовано у меня в скрипте: viewtopic.php?f=13&t=6640

Re: Скрипт для загрузки из файла и обновления /etc/hosts (статических соответствий имя-адрес в DNS)

Добавлено: 30 апр 2017, 19:44
panacorn
podarok66, Dragon_Knight, спасибо за помощь!

Re: Скрипт для загрузки из файла и обновления /etc/hosts (статических соответствий имя-адрес в DNS)

Добавлено: 05 июн 2020, 01:48
hulitolku
а изменения в IP -> DNS -> Static я так понимаю вступают в силу после перезагрузки роутера?

Re: Скрипт для загрузки из файла и обновления /etc/hosts (статических соответствий имя-адрес в DNS)

Добавлено: 05 июн 2020, 02:06
KARaS'b
Не уверен на 100%, но на самом микротике скорее всего моментально, а вы сталкнулись с проблемой днс кэша со стороны клиента, которые не будут обращаться к днс серверу пока не истечет ttl записи или не произойдет переподключение к сети, которые скорее всего вы и провоцирует перезагрузкой микротика.