Задача
Есть локальная сеть, роутер D-Link DIR-300 (прошит DD-WRT), сервер. Нужно обращаться к серверу по доменным именам без изменения файлов/настроек на клиентских компьютерах.
Решение
#!/usr/bin/expect
spawn telnet 192.168.3.1
expect “login:”
send “rootn”
expect “Password:”
send “ROUTER_PASSWORDn”
expect “DD-WRT:~#”
send “echo “127.0.0.1 localhostn192.168.1.1 DD-WRTn192.168.1.2 torrents.localn” > /etc/hostsn” # желаемое содержимое /ets/hosts маршрутизатора
send “killall -HUP dnsmasqn” # сигнал на обновление настроек
send “exitn”
expect eof