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

Обсуждение ПО и его настройки
Ответить
panacorn
Сообщения: 4
Зарегистрирован: 29 апр 2017, 19:35

Доброго времени суток!

Пользуюсь мобильным интернетом, часто меняю симки, далеко не на всех симках стоит запрет подписок.
В сети есть файл /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 скрипта

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


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

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


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
Dragon_Knight
Сообщения: 1724
Зарегистрирован: 26 мар 2012, 18:21
Откуда: МО, Мытищи
Контактная информация:

Посмотрите как это реализовано у меня в скрипте: viewtopic.php?f=13&t=6640


Небольшой свод правил логики и ссылок:
  1. Если устройство имеет Ethernet порт, то оно обязано быть подключено через него. Компьютер, Ноутбук, Телевизор, Принтер, Камера видеонаблюдения, и т.д.
  2. Если нет возможности протянуть кабель, то найдите её, или страдайте со своими проблемами Wi-Fi дальше.
  3. Wi-Fi это сеть для мобильных устройств. Если Вы подключили свой шикарный 50" телевизор не кабелем, то без фотоотчёта, когда он лежит у Вас в кармане дальнейшего разговора не получиться. Это относится и ко всем остальным устройствам.
  4. Если Ваше устройство вызывает вопросы в работе, первое что необходимо делать: NetInstall + дальнейшая настройка вручную.
  5. Не используйте WebFig или QuickSet - это пути к глюкам и ошибкам. Только SSH или WinBox, и да, - WinBox есть под Android.
  6. name.rsc - это текстовый файл, и Вы можете его открыть блокнотом.
  7. Если Вы хотите связаться со мной для ремонта или настройки, то: Telegram ( Не благотворительность ).
  8. Мой сайт по Mikrotik: Global Zone >> MikroTik.
panacorn
Сообщения: 4
Зарегистрирован: 29 апр 2017, 19:35

podarok66, Dragon_Knight, спасибо за помощь!


Аватара пользователя
hulitolku
Сообщения: 34
Зарегистрирован: 07 окт 2018, 11:59

а изменения в IP -> DNS -> Static я так понимаю вступают в силу после перезагрузки роутера?


KARaS'b
Сообщения: 1199
Зарегистрирован: 29 сен 2011, 09:16

Не уверен на 100%, но на самом микротике скорее всего моментально, а вы сталкнулись с проблемой днс кэша со стороны клиента, которые не будут обращаться к днс серверу пока не истечет ttl записи или не произойдет переподключение к сети, которые скорее всего вы и провоцирует перезагрузкой микротика.


Ответить