Доброго времени суток!
Пользуюсь мобильным интернетом, часто меняю симки, далеко не на всех симках стоит запрет подписок.
В сети есть файл /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 скрипта
Заранее спасибо!
Скрипт для загрузки из файла и обновления /etc/hosts (статических соответствий имя-адрес в DNS)
- podarok66
- Модератор
- Сообщения: 4355
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
Сначала прочтите вот это. Это конечно не по вашей проблеме, но принцип обработки файла будет понятен. Вот как выбирать ваши адреса, я пока не могу сказать, мне кажется на сервере обработать файл hosts до приемлемого вида проще на порядок, и комментарии убрать и с разделителями поработать. А уж потом обработанный можно и Микротику подсовывать. Учитывайте размер обрабатываемого файла, в статейке про это упоминается.
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
- Dragon_Knight
- Сообщения: 1724
- Зарегистрирован: 26 мар 2012, 18:21
- Откуда: МО, Мытищи
- Контактная информация:
Посмотрите как это реализовано у меня в скрипте: viewtopic.php?f=13&t=6640
Небольшой свод правил логики и ссылок:
- Если устройство имеет Ethernet порт, то оно обязано быть подключено через него. Компьютер, Ноутбук, Телевизор, Принтер, Камера видеонаблюдения, и т.д.
- Если нет возможности протянуть кабель, то найдите её, или страдайте со своими проблемами Wi-Fi дальше.
- Wi-Fi это сеть для мобильных устройств. Если Вы подключили свой шикарный 50" телевизор не кабелем, то без фотоотчёта, когда он лежит у Вас в кармане дальнейшего разговора не получиться. Это относится и ко всем остальным устройствам.
- Если Ваше устройство вызывает вопросы в работе, первое что необходимо делать: NetInstall + дальнейшая настройка вручную.
- Не используйте WebFig или QuickSet - это пути к глюкам и ошибкам. Только SSH или WinBox, и да, - WinBox есть под Android.
- name.rsc - это текстовый файл, и Вы можете его открыть блокнотом.
- Если Вы хотите связаться со мной для ремонта или настройки, то: Telegram ( Не благотворительность ).
- Мой сайт по Mikrotik: Global Zone >> MikroTik.
-
- Сообщения: 4
- Зарегистрирован: 29 апр 2017, 19:35
podarok66, Dragon_Knight, спасибо за помощь!
- hulitolku
- Сообщения: 34
- Зарегистрирован: 07 окт 2018, 11:59
а изменения в IP -> DNS -> Static я так понимаю вступают в силу после перезагрузки роутера?
-
- Сообщения: 1199
- Зарегистрирован: 29 сен 2011, 09:16
Не уверен на 100%, но на самом микротике скорее всего моментально, а вы сталкнулись с проблемой днс кэша со стороны клиента, которые не будут обращаться к днс серверу пока не истечет ttl записи или не произойдет переподключение к сети, которые скорее всего вы и провоцирует перезагрузкой микротика.