Rezdbic Posted October 27, 2016 Share Posted October 27, 2016 Поставил Entware3x, тоже самое. При получении "серого" IP, в логе такая ошибка и скрипт не отрабатывает. Роутер Giga II v2.08(AAFS.2)A. Цитата Oct 27 19:34:11ndm Network::Interface::Base: "PPPoE0": interface is up. Oct 27 19:34:11ndm Network::Interface::PPP: interface "PPPoE0" is global, priority 1000. Oct 27 19:34:11ndm Network::Interface::PPP: "PPPoE0": adding default route via PPPoE0. Oct 27 19:34:11ndm Network::Interface::PPP: adding nameserver 213.177.97.201. Oct 27 19:34:11ndm Dns::Manager: name server 213.177.97.201 added, domain (default). Oct 27 19:34:11ndm Network::Interface::PPP: adding nameserver 213.177.96.201. Oct 27 19:34:11ndm Dns::Manager: name server 213.177.96.201 added, domain (default). Oct 27 19:34:12ndm Network::Interface::IP: "PPPoE0": IP address is 100.78.179.59/32. Oct 27 19:34:12white_ip[1350] interface: ppp0 , address: 100.78.179.59 Oct 27 19:34:12white_ip[1350] Reloading wan due grey IP - 100.78.179.59 Oct 27 19:34:12ndm Core::Server: started Session /var/run/ndm.core.socket. Oct 27 19:34:12ndm Core::Server: client disconnected. Oct 27 19:34:12ndm Core::Server: started Session /var/run/ndm.core.socket. Oct 27 19:34:12ndm Command::Base: argument parse error. Oct 27 19:34:12ndm Opkg::Manager: /opt/etc/ndm/wan.d/white-ip.sh: Error: Command::Base: argument parse error. Oct 27 19:34:12ndm Core::Server: client disconnected. Oct 27 19:34:13ndm Core::ConfigurationSaver: configuration saved. Oct 27 19:34:14ndm Core::Server: started Session /var/run/ndm.core.socket. Oct 27 19:34:14upnp HTTP listening on port 46377 Oct 27 19:34:14upnp Listening for NAT-PMP/PCP traffic on port 5351 Oct 27 19:34:14ndm Core::Server: started Session /var/run/ndm.core.socket. Oct 27 19:34:14ndm Command::Base: argument parse error. Oct 27 19:34:14ndm Opkg::Manager: /opt/etc/ndm/wan.d/white-ip.sh: Error: Command::Base: argument parse error. Oct 27 19:34:14ndm Core::Server: client disconnected. Oct 27 19:34:14white_ip[1350] Finished Quote Link to comment Share on other sites More sharing options...
S_A Posted October 27, 2016 Share Posted October 27, 2016 Проверьте команды которые дает скрипт в Entware. может параметры CLI команд или параметры ndmq изменились. У меня 2.06, проверить не могу. Quote Link to comment Share on other sites More sharing options...
Rezdbic Posted October 27, 2016 Share Posted October 27, 2016 Ок. Проверю. ЗЫ. На Giga III c Entware3x работает без проблем. Quote Link to comment Share on other sites More sharing options...
VVJ Posted November 3, 2016 Share Posted November 3, 2016 Если дело только в DYNDNS то нужно просто убрать галочку Automatically guess my IP: .Это совет техподдержки ZyXEL. У меня это работает со времен первой ультры . Тогда думал, что дело в роутере, даже поменял после обращения в техподдержку. Но ничего не изменилось. После долгих мучений нашли выход. Quote Link to comment Share on other sites More sharing options...
Perevozchic Posted February 19, 2017 Share Posted February 19, 2017 (edited) Del Edited March 4, 2017 by Perevozchic Quote Link to comment Share on other sites More sharing options...
Le ecureuil Posted April 9, 2018 Share Posted April 9, 2018 up Quote Link to comment Share on other sites More sharing options...
Tammy Posted April 10, 2018 Share Posted April 10, 2018 В 03.11.2016 в 06:52, VVJ сказал: Если дело только в DYNDNS то нужно просто убрать галочку Automatically guess my IP: .Это совет техподдержки ZyXEL. У меня это работает со времен первой ультры . Тогда думал, что дело в роутере, даже поменял после обращения в техподдержку. Но ничего не изменилось. После долгих мучений нашли выход. Домен третьего уровня от DYNDNS уже более трех лет как платный. Так что смысл платить DYNDNS за привязку динамики к домену третьего уровня? Если у ростелекома если мне не изменяет память услуга стоит в районе 50-100р. Разве что если у DYNDNS дешевле, тогда может быть... Quote Link to comment Share on other sites More sharing options...
Alexey Sergeev Posted April 10, 2018 Share Posted April 10, 2018 Для optware (белые кинетики, ndms v1) вроде такой скрипт тоже делали. Много времени прошло, что-то сейчас найти сложно, но может, у кого-то он остался? Или даже автор здесь присутствует? Quote Link to comment Share on other sites More sharing options...
Quadro Rover Posted May 13, 2018 Share Posted May 13, 2018 (edited) Не могу ограничить количество попыток, продолжает переподключаться, помогите с кодом. #!/bin/sh counter=/opt/share/counter.txt max_tries=2 [ -z "$address" ] && exit 0 logger -t WHITE-IP[$$] "interface: " $interface ", address: " $address if [ "$interface" = "ppp0" ]; then _ip=$(echo $address | grep -v "^100\.") if [ -z "$_ip" ]; then # Get counter from temp file [ -f "$counter" ] || echo '0' > $counter try_nr="$(cat $counter)" # This is our try_nr try try_nr=$((try_nr+1)) # Too much tries if [ $try_nr -gt $max_tries ]; then echo '0' > $counter logger -t WHITE-IP[$$] "Too much tries. Exit"; exit fi echo "$try_nr" > $counter logger -t WHITE-IP[$$] "Reloading wan due grey IP - $address"; ndmq -p 'interface PPPoE0 no connect via ISP' -P message sleep 5 ndmq -p 'interface PPPoE0 connect via ISP' -P message else echo '0' > $counter logger -t WHITE-IP[$$] "White IP - $address"; fi fi Там же указано что если попыток больше то команда - exit - завершить скрипт, чё ему надо? Edited May 13, 2018 by Quadro Rover Quote Link to comment Share on other sites More sharing options...
VVJ Posted May 27, 2018 Share Posted May 27, 2018 В 4/10/2018 в 10:59, Tammy сказал: Так что смысл платить DYNDNS за привязку динамики к домену третьего уровня? Если у ростелекома если мне не изменяет память услуга стоит в районе 50-100р. Сейчас " NO-IP" бесплатный. У Ростелекома год назад стоимость была 100 руб. Quote Link to comment Share on other sites More sharing options...
Goblin Posted May 27, 2018 Share Posted May 27, 2018 (edited) 45 минут назад, VVJ сказал: У Ростелекома год назад стоимость была 100 руб. это смотря где наверно. в нашем городе вообще физикам белую статику не продают. только юрикам. Edited May 27, 2018 by Goblin Quote Link to comment Share on other sites More sharing options...
Geont Posted February 28, 2019 Share Posted February 28, 2019 (edited) Немного обновил и причесал скрипт. Теперь работает стабильнее. #!/opt/bin/sh ConnName=Rostelecom counter=/opt/tmp/CountReconnectWan.txt previp=/opt/tmp/previp.txt max_tries=10 LIST=`ndmq -p 'show interface' -x | xml sel -t -m '//interface[link="up"][state="up"][global="yes"][defaultgw="yes"]' -v '@name' -o ',' -v 'description' -o ',' -v 'address' -o ',' -v 'via' -n` echo "$LIST" | grep -iwq "$ConnName" || exit 0 _ip=`echo "$LIST" | cut -d, -f3` _prov=`echo "$LIST" | cut -d, -f2` _iface=`echo "$LIST" | cut -d, -f1` _via=`echo "$LIST" | cut -d, -f4` if echo "$_ip" | grep -qE "^(10\.|100\.6[4-9]\.|100\.[7-9][0-9]\.|100\.1[01][0-9]\.|100\.12[0-7]\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[01]\.)"; then [ -f "$counter" ] || echo "0" > $counter try_nr=$(cat $counter) try_nr=$((++try_nr)) if [ $try_nr -gt $max_tries ]; then echo "0" > $counter logger -t white_ip[$$] "Provider: $_prov, interface: $_iface. Too much tries. Exit" exit fi echo "$try_nr" > $counter logger -t white_ip[$$] "Provider: $_prov, interface: $_iface. Reloading WAN due grey IP - $_ip. Try $try_nr of $max_tries." ndmq -p "interface $_iface no connect via $_via" -P message sleep 5 ndmq -p "interface $_iface connect via $_via" -P message else echo "0" > $counter [ -f "$previp" ] || echo "0.0.0.0" > $previp _previp=$(cat $previp) if [ "$_previp" != "$_ip" ]; then logger -t white_ip[$$] "Provider: $_prov, interface: $_iface, white IP - $_ip." echo "$_ip" > $previp fi fi Кроме установленного пакета ndmq требуется также xmlstarlet. В переменной $ConnName (2-я строка) замените название подключения на свое - так, как оно названо у вас в web-интерфейсе. Больше ничего указывать не нужно. Подключений может быть несколько, скрипт обрабатывает только подключение с указанным названием в случае его использования в качестве основного. Расположение обычное: /opt/etc/ndm/wan.d/. Edited April 12, 2019 by Geont 4 1 Quote Link to comment Share on other sites More sharing options...
Александр Рыжов Posted February 28, 2019 Share Posted February 28, 2019 @Geont, это у вас точно работает? ndmq -p 'interface $_iface no connect via $_via' -P message Потому как в одинарных кавычках текст считается константой, в нём выражения и переменные не развёртываются, может лучше… ndmq -p "interface $_iface no connect via $_via" -P message Quote Link to comment Share on other sites More sharing options...
Geont Posted February 28, 2019 Share Posted February 28, 2019 (edited) 7 часов назад, Александр Рыжов сказал: @Geont, это у вас точно работает? Да, ошибка. Исправил. Edited February 28, 2019 by Geont Quote Link to comment Share on other sites More sharing options...
K1fa Posted May 15, 2020 Share Posted May 15, 2020 В 28.02.2019 в 11:04, Geont сказал: Немного обновил и причесал скрипт. Теперь работает стабильнее. Кроме установленного пакета ndmq требуется также xmlstarlet. В переменной $ConnName (2-я строка) замените название подключения на свое - так, как оно названо у вас в web-интерфейсе. Больше ничего указывать не нужно. Подключений может быть несколько, скрипт обрабатывает только подключение с указанным названием в случае его использования в качестве основного. Расположение обычное: /opt/etc/ndm/wan.d/. у меня что то не заработал: Май 15 14:47:15 ndm Opkg::Manager: /opt/etc/ndm/wan.d/010-rostel.sh: /opt/etc/ndm/wan.d/010-rostel.sh: line 75: syntax error: unexpected end of file (expecting "fi"). Май 15 14:47:15 ndm Opkg::Manager: /opt/etc/ndm/wan.d/010-rostel.sh: exit code 2. Quote Link to comment Share on other sites More sharing options...
Максим_ Posted May 24, 2020 Share Posted May 24, 2020 В 15.05.2020 в 14:53, K1fa сказал: у меня что то не заработал: Май 15 14:47:15 ndm Opkg::Manager: /opt/etc/ndm/wan.d/010-rostel.sh: /opt/etc/ndm/wan.d/010-rostel.sh: line 75: syntax error: unexpected end of file (expecting "fi"). Май 15 14:47:15 ndm Opkg::Manager: /opt/etc/ndm/wan.d/010-rostel.sh: exit code 2. только что проверил. Все работает. У самого Ростелеком. В твоем случае проблема в кодировке и символах переноса строки. Прочитай полностью вторую страницу темы. Quote Link to comment Share on other sites More sharing options...
batonskij Posted July 4, 2020 Share Posted July 4, 2020 Приветствую всех, прошу не запинывать сразу тапками, новичок... Использовал скрипт Geont ,все замечательно работает, пытался к нему приладить кусочек отвечающий за нотификации через Telegram, спотыкается, куда копнуть? Кусочек просто вставил в конец скрипта, так нельзя? #!/opt/bin/sh ConnName=Rostelecom counter=/opt/tmp/CountReconnectWan.txt previp=/opt/tmp/previp.txt max_tries=10 LIST=`ndmq -p 'show interface' -x | xml sel -t -m '//interface[link="up"][state="up"][global="yes"][defaultgw="yes"]' -v '@name' -o ',' -v 'description' -o ',' -v 'address' -o ',' -v 'via' -n` echo "$LIST" | grep -iwq "$ConnName" || exit 0 _ip=`echo "$LIST" | cut -d, -f3` _prov=`echo "$LIST" | cut -d, -f2` _iface=`echo "$LIST" | cut -d, -f1` _via=`echo "$LIST" | cut -d, -f4` if echo "$_ip" | grep -qE "^(10\.|100\.6[4-9]\.|100\.[7-9][0-9]\.|100\.1[01][0-9]\.|100\.12[0-7]\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[01]\.)"; then [ -f "$counter" ] || echo "0" > $counter try_nr=$(cat $counter) try_nr=$((++try_nr)) if [ $try_nr -gt $max_tries ]; then echo "0" > $counter logger -t white_ip[$$] "Provider: $_prov, interface: $_iface. Too much tries. Exit" exit fi echo "$try_nr" > $counter logger -t white_ip[$$] "Provider: $_prov, interface: $_iface. Reloading WAN due grey IP - $_ip. Try $try_nr of $max_tries." ndmq -p "interface $_iface no connect via $_via" -P message sleep 5 ndmq -p "interface $_iface connect via $_via" -P message else echo "0" > $counter [ -f "$previp" ] || echo "0.0.0.0" > $previp _previp=$(cat $previp) if [ "$_previp" != "$_ip" ]; then logger -t white_ip[$$] "Provider: $_prov, interface: $_iface, white IP - $_ip." echo "$_ip" > $previp fi fi /opt/bin/tg_say.sh "Force reconnect to get real IP (try $try_nr of $max_tries)." echo "$try_nr" > $counter ndmq -p "no interface $interface connect" sleep 5 ndmq -p "interface $interface connect" echo '0' > $counter fi Quote Link to comment Share on other sites More sharing options...
Андрей Поздеев Posted February 26, 2021 Share Posted February 26, 2021 (edited) Фев 26 11:02:01 white_ip[809] Provider: Rostelecom, interface: GigabitEthernet0/Vlan4. Reloading WAN due grey IP - 100.80.254.178. Try 2 of 10. Фев 26 11:02:01 ndm Core::Server: started Session /var/run/ndm.core.socket. Фев 26 11:02:01 ndm Command::Base: argument parse error. Фев 26 11:02:01 ndm Opkg::Manager: /opt/etc/ndm/wan.d/010-rostel.sh: Error: Command::Base: argument parse error. Opkg::Manager: /opt/etc/ndm/wan.d/010-rostel.sh: exit code 34. Подскажите, пожалуйста что ему не нравится? Edited February 26, 2021 by Андрей Поздеев Quote Link to comment Share on other sites More sharing options...
Mamay Posted February 26, 2021 Share Posted February 26, 2021 3 часа назад, Андрей Поздеев сказал: Подскажите, пожалуйста что ему не нравится? Стесняюсь спросить, а вы entware то установили? Quote Link to comment Share on other sites More sharing options...
Андрей Поздеев Posted February 26, 2021 Share Posted February 26, 2021 8 hours ago, Mamay said: Стесняюсь спросить, а вы entware то установили? Ну а как же. Конечно установил. Quote Link to comment Share on other sites More sharing options...
Андрей Поздеев Posted March 1, 2021 Share Posted March 1, 2021 Никто не подскажет решение? Quote Link to comment Share on other sites More sharing options...
Geont Posted March 2, 2021 Share Posted March 2, 2021 В 01.03.2021 в 09:47, Андрей Поздеев сказал: Никто не подскажет решение? Попробуйте запустить скрипт вручную из консоли, так будет больше информации. Quote Link to comment Share on other sites More sharing options...
Андрей Поздеев Posted March 3, 2021 Share Posted March 3, 2021 (edited) 11 hours ago, Geont said: Попробуйте запустить скрипт вручную из консоли, так будет больше информации. ~ # /opt/etc/ndm/wan.d/010-rostel.sh ~ # Консоль молчит.... В веб консоли: ERROR: { "parse": { "prompt": "(config)", "status": [ { "status": "error", "code": "7405600", "ident": "Command::Base", "source": "", "critical": "no", "message": "no such command: /opt/etc/ndm/wan.d/010-rostel.sh." } ] }, "ndmErrors": { "parse.status.0": { "message": "no such command: /opt/etc/ndm/wan.d/010-rostel.sh.", "code": "7405600" } } } Edited March 3, 2021 by Андрей Поздеев Quote Link to comment Share on other sites More sharing options...
Андрей Поздеев Posted March 11, 2021 Share Posted March 11, 2021 Мар 11 08:36:21 ndm Core::Server: started Session /var/run/ndm.core.socket. Мар 11 08:36:21 ndm Command::Base: argument parse error. Мар 11 08:36:21 ndm Opkg::Manager: /opt/etc/ndm/wan.d/white_ip.sh: Error: Command::Base: argument parse error. Мар 11 08:36:21 ndm Core::Session: client disconnected. Мар 11 08:36:21 ndm Opkg::Manager: /opt/etc/ndm/wan.d/white_ip.sh: exit code 34. Неужели никто подсказать не может, что мне делать? Quote Link to comment Share on other sites More sharing options...
Goblin Posted March 11, 2021 Share Posted March 11, 2021 2 часа назад, Андрей Поздеев сказал: Неужели никто подсказать не может, что мне делать? может глупость спрошу. а перевод в конце строк точно для линукса? я раньше это пользовал...01white-ip.sh.zip Quote Link to comment Share on other sites More sharing options...
Андрей Поздеев Posted March 12, 2021 Share Posted March 12, 2021 On 3/11/2021 at 1:36 PM, Goblin said: может глупость спрошу. а перевод в конце строк точно для линукса? я раньше это пользовал...01white-ip.sh.zip Точно. Если были бы пробелы и т.д то синтаксическая ошибка была если я не ошибаюсь. Quote Link to comment Share on other sites More sharing options...
Rezdbic Posted September 12, 2021 Share Posted September 12, 2021 В новых версиях Entware ныне ndmq больше не доступен. У кого-нибудь есть скрипт без использования ndmq? Quote Link to comment Share on other sites More sharing options...
Geont Posted September 15, 2021 Share Posted September 15, 2021 В 12.09.2021 в 14:56, Rezdbic сказал: В новых версиях Entware ныне ndmq больше не доступен. У кого-нибудь есть скрипт без использования ndmq? Можно ndmq установить отсюда. Quote Link to comment Share on other sites More sharing options...
Geont Posted September 17, 2021 Share Posted September 17, 2021 Скрипт, работающий на REST API #!/opt/bin/sh ConnName=Rostelecom counter=/opt/tmp/CountReconnectWan.txt previp=/opt/tmp/previp.txt max_tries=10 if ! opkg list-installed | grep '^jq' > /dev/null; then opkg update opkg install jq fi RESP=$(wget -qO - http://localhost:79/rci/show/interface | jq -r ".[] | select(.description==\"$ConnName\") | select(.defaultgw==true) | .id, .description, .address") [ -n "$RESP" ] || exit 1 _ip=$(echo $RESP | awk '{print $3}') _name=$(echo $RESP | awk '{print $2}') _iface=$(echo $RESP | awk '{print $1}') if echo "$_ip" | grep -qE "^(10\.|100\.6[4-9]\.|100\.[7-9][0-9]\.|100\.1[01][0-9]\.|100\.12[0-7]\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[01]\.)"; then [ -f "$counter" ] || echo "0" > $counter try_nr=$(cat $counter) try_nr=$((++try_nr)) if [ $try_nr -gt $max_tries ]; then echo "0" > $counter logger -p local0.error -t white_ip[$$] "Provider: $_name, interface: $_iface. Too much tries. Exit" exit 1 fi echo "$try_nr" > $counter logger -p local0.error -t white_ip[$$] "Provider: $_name, interface: $_iface. Reloading WAN due grey IP - $_ip. Try $try_nr of $max_tries." wget -qO - --post-data="[{\"interface\":{\"name\":\"$_iface\",\"down\":{}}}]" http://localhost:79/rci/ sleep 3 wget -qO - --post-data="[{\"interface\":{\"name\":\"$_iface\",\"up\":{}}}]" http://localhost:79/rci/ else echo "0" > $counter [ -f "$previp" ] || echo "0.0.0.0" > $previp _previp=$(cat $previp) if [ "$_previp" != "$_ip" ]; then logger -p local0.notice -t white_ip[$$] "Provider: $_name, interface: $_iface, white IP - $_ip." echo "$_ip" > $previp else logger -p local0.notice -t white_ip[$$] "Provider: $_name, interface: $_iface, white IP - $_ip (address unchanged)." fi exit 0 fi Для работы нужен пакет jq (будет установлен при первом запуске скрипта). Не забудьте поменять название подключения РТ в 3 строке на то, как оно названо в веб-интерфейсе. 4 4 Quote Link to comment Share on other sites More sharing options...
Petrak Posted September 20, 2021 Share Posted September 20, 2021 Добрый день, я новичок, в скриптах не шарю, KN2010. Суть проблемы, провайдер выделяет динамический IP ,на некоторых IP одной подсети высокий пинг, есть ли такой скрипт, чтобы роутер при подключении к интернету отклонял не нужный мне определённый диапазон IP адресов? Огромная просьба если не затруднит, рассказать подробно ,что нужно установить и где прописать диапазон IP адресов. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.