Как получить адрес Wan с gpon-модема Alcatel-Lucent
В процессе настройки dyndns для домашнего сервера нужно было узнать свой внешний адрес. Решений было 2
- Получить адрес используя сторонний сайт, такой как ifconfig
- Получить адрес используя веб-страницу модема.
Я использовал оба варианта, но в первом варианте была проблема - очень долгая задержка. Поэтому принял решение, использовать второй вариант.
Как получить адрес?
curl --silent --user USERNAME:USERPASS http://ROUTERID/html/wan.html
Мы получим страницу со всеми настройками модема.
sed -n '/<!-- DYNAMIC IP -->/,/<!-- end DYNAMIC IP -->/p'
Вырежем нужные нам настройки - Динамический IP.
sed -n '/IP Address/,/<\/tr>/p'
Вырежем таблицу IP-адреса
grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}"
Испольуем grep, вытаскиваем сам ip-адрес.
Сложим все вместе
current_ip=$(curl --silent --user USERNAME:USERPASS http://192.168.1.1/html/wan.html | sed -n '/<!-- DYNAMIC IP -->/,/<!-- end DYNAMIC IP -->/p'| sed -n '/IP Address/,/<\/tr>/p'|grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}")