Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/70: Рейтинг темы: голосов - 70, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 11.01.2021
Сообщений: 118
VBS

Скрипт для перезагрузки роутера по значению внешнего IP

11.01.2021, 23:52. Показов 16178. Ответов 227
Метки vbs (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Ребята, нужен скрипт перезагрузки роутера, если первый октет внешнего адреса имеет значение 100. Перезагружать пока первый октет имеет значение 100 (или можно ограничиться 10 перезагрузок с проверкой и затем, если не изменился, то повторить перезагрузку через некоторое время).
Я не программист. Поискав, нашел некоторые намётки. Можно через TELNET организовать перезагрузку, кусочек скрипта уже опробовал, работает. А вот с проверкой условия труднее. Есть вроде бы вариант через IFCONFIG получить внешний ppp0 inet addr.
Не пинайте, если не в той теме обратился.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.01.2021, 23:52
Ответы с готовыми решениями:

Файл или скрипт для автоматической перезагрузки роутера
Ребята помогите написать исполняемый файл или рабочий скрипт для автоматической перезагрузки роутера в ОС Windows. Сам не могу. Как делую: ...

Скрипт перезагрузки роутера при разрыве коннекта
Доброго времени, уважаемые знатоки. Хочу отредактировать скрипт для ADSL QDSL-1040WU-FON, перезагрузки роутера при разрыве коннекта. ...

Батник для перезагрузки роутера
Добрый день подскажите как написать батник перегрузки роутера

227
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
22.01.2021, 22:34
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от alpap Посмотреть сообщение
не меняет на свои
Я их с приведённого скриншота брал.


KOHTAKT, vbs нет смысла запускать из консоли. Просто Enter в проводнике/ФМ жмите.
Подключение утеряно при reboot-e. А в этом случае такого не было?
Вторая ошибка по логике напрямую связана с первой. Если подключения нет, то и доступ к удалёнке получить не получается. Как восстанавливается доступ?

Цитата Сообщение от KOHTAKT Посмотреть сообщение
Выполнение так и проходит в 2-х окнах, второе появляется само, когда выполняется скрипт.
Странно. Добавьте в 6 строке ... "start /b telnet ...

И такой код протестируйте на всякий:
Visual Basic
1
2
3
4
5
Set oStd = CreateObject("WScript.Shell").Exec("plink -telnet 192.168.0.1").StdIn
WSH.Sleep 100
oStd.Write "admin" & vbLf & "12345" & vbLf
WSH.Sleep 100
oStd.WriteLine("reboot")
0
0 / 0 / 0
Регистрация: 11.01.2021
Сообщений: 118
22.01.2021, 23:14  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
Подключение утеряно при reboot-e. А в этом случае такого не было?
Вы думаете, что подключения совсем прерывается? Нет, оно восстанавливается с другим адресом. И в том случае тоже.

Из проводника скрипт выполняется, роутер ребутится, но не проверяет условие дальше (не циклится) или не запускается сам скрипт. Окно с запущенным сценарием после ребута роутера просто по прошествии времени закрывается.

Цитата Сообщение от FlasherX Посмотреть сообщение
И такой код протестируйте
Миниатюры
Скрипт для перезагрузки роутера по значению внешнего IP  
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
22.01.2021, 23:54
Цитата Сообщение от KOHTAKT Посмотреть сообщение
оно восстанавливается с другим адресом
Сколько на это уходит времени? Неужели 30 сек не хватает? Добавлю пинг после разборов.
Цитата Сообщение от KOHTAKT Посмотреть сообщение
но не проверяет условие дальше
При ошибке и не будет.

Не уточнил про тестовый, его как раз через cscript надо запускать.
0
0 / 0 / 0
Регистрация: 11.01.2021
Сообщений: 118
23.01.2021, 01:32  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
Неужели 30 сек не хватает?
В самый раз 90 уходит. Я в скрипте исправлял.

Цитата Сообщение от FlasherX Посмотреть сообщение
Не уточнил про тестовый, его как раз через cscript надо запускать.
По-моему, эффект тот же.
Миниатюры
Скрипт для перезагрузки роутера по значению внешнего IP  
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
23.01.2021, 11:54
Цитата Сообщение от KOHTAKT Посмотреть сообщение
По-моему, эффект тот же.
Попробуйте первый Sleep в 500 или больше поставить.
0
Эксперт NIX
3308 / 935 / 202
Регистрация: 14.01.2013
Сообщений: 4,777
23.01.2021, 16:33
Не хотите вот такой инструмент заюзать? Вся деятельность могла бы в рамках bat-файла осуществляться.
1
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
23.01.2021, 17:05
Kubuntovod, хм, интересно. Ну, допустим:
192.168.0.1
WAIT "Dlink-Router login: "
SEND "admin\m"
WAIT "Password: "
SEND "12345\m"
тут что ждём?
SEND "reboot\m"
тут что ждём?
SEND "exit\m"
0
Эксперт NIX
3308 / 935 / 202
Регистрация: 14.01.2013
Сообщений: 4,777
23.01.2021, 19:11
Цитата Сообщение от FlasherX Посмотреть сообщение
тут что ждём?
Насколько я помню, telnet запускаете и смотрите, что там вылазит. То и ждёте в скрипте.

Добавлено через 46 секунд
Цитата Сообщение от FlasherX Посмотреть сообщение
SEND "reboot\m"
Думается мне, что тут уже нечего ждать Шелезяка в ребут уйдёт.
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
23.01.2021, 19:32
Цитата Сообщение от Kubuntovod Посмотреть сообщение
То и ждёте в скрипте.
Не надо меня с ТС путать, пож-та.
Цитата Сообщение от Kubuntovod Посмотреть сообщение
Думается мне, что тут уже нечего ждать
ТЗ предполагает, что есть что. Проверка на коннект для продолжения цикла.
0
Эксперт NIX
3308 / 935 / 202
Регистрация: 14.01.2013
Сообщений: 4,777
24.01.2021, 08:23
Цитата Сообщение от FlasherX Посмотреть сообщение
Не надо меня с ТС путать, пож-та.
Вы спрашиваете "Чего тут ждём?", я отвечаю. Причём тут ТС?

Цитата Сообщение от FlasherX Посмотреть сообщение
ТЗ предполагает, что есть что. Проверка на коннект для продолжения цикла.
Это уже за рамками телнет-сессии. От телнета нечего ждать, когда на том конце комп в ребут ушёл.
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
24.01.2021, 11:22
Цитата Сообщение от Kubuntovod Посмотреть сообщение
я отвечаю. Причём тут ТС?
А ответ-то где? Это не столько ответ, сколько мысли вслух. ТС при том, что ставил задачу он, и мне тут смотреть не на что.
Цитата Сообщение от Kubuntovod Посмотреть сообщение
когда на том конце комп в ребут ушёл.
Какой ещё комп ушёл в ребут? Речь про перезагрузку роутера, а не компа. Вы запрос читали? Перед тем, как выполнить exit и продолжить цикл, нужно понимать, что на входе.
0
Эксперт NIX
3308 / 935 / 202
Регистрация: 14.01.2013
Сообщений: 4,777
24.01.2021, 15:19
Цитата Сообщение от FlasherX Посмотреть сообщение
А ответ-то где? Это не столько ответ, сколько мысли вслух. ТС при том, что ставил задачу он, и мне тут смотреть не на что.
ТС не спрашивал, чего ему "тут ждать". И это были не мысли слух. Как идёт общение через телнет, так и в программе прописывается, теми же словами, вынутыми из этого общения.

Цитата Сообщение от FlasherX Посмотреть сообщение
Какой ещё комп ушёл в ребут? Речь про перезагрузку роутера, а не компа.
Да без разницы. Речь о разговоре по телнету с неким железом. Не суть, как я его назвал. "Та сторона", "роутер" или "комп".

Цитата Сообщение от FlasherX Посмотреть сообщение
Перед тем, как выполнить exit и продолжить цикл, нужно понимать, что на входе.
Железо, с той стороны, перестаёт отправлять вам на "вход" данные. Оно закончило разговор и ушло в ребут. Чего вы от него дождаться хотите?
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
24.01.2021, 18:21
Цитата Сообщение от Kubuntovod Посмотреть сообщение
И это были не мысли слух.
Именно они, так как и так ясно, что спрашивалось о конкретике. Я же привёл отредактированные под ТС входящие, а не скопипастенные с вашего примера.
Цитата Сообщение от Kubuntovod Посмотреть сообщение
Железо, с той стороны, перестаёт отправлять вам на "вход" данные.
Пусть будет не железо, а telnet или cmd. Без разницы. Программа умеет получать следующий текст на вход?
Цитата Сообщение от Kubuntovod Посмотреть сообщение
Чего вы от него дождаться хотите?
Ну возьмём, к примеру, ваши строки: WAIT "(config)>"
SEND "exit\m"

Там перед exit может быть '>' или ещё что-то. И exit — это команда к чему? "Той стороне" или cmd? У самого telnet-а за выход отвечает quit/q.
0
0 / 0 / 0
Регистрация: 11.01.2021
Сообщений: 118
24.01.2021, 20:15  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
Попробуйте первый Sleep в 500 или больше поставить.
Только при бОльших значениях (10 000 и более) не выдает ошибку. Но никаких реакций на скрипт не наблюдается.
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
24.01.2021, 20:59
KOHTAKT, что-то тут не то. 10 сек и в консоли авторизация не происходит? Сомнительно.
0
Эксперт NIX
3308 / 935 / 202
Регистрация: 14.01.2013
Сообщений: 4,777
24.01.2021, 21:17
Цитата Сообщение от FlasherX Посмотреть сообщение
Программа умеет получать следующий текст на вход?
Умеет. Отправить его некому.

Цитата Сообщение от FlasherX Посмотреть сообщение
И exit — это команда к чему? "Той стороне" или cmd?
Ну, если там написано SEND, то, наверное, "той стороне"? А если на той стороне "получатель" ушёл в ребут, что вы ему отправлять собрались?
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
24.01.2021, 22:20
Цитата Сообщение от Kubuntovod Посмотреть сообщение
Отправить его некому.
В смысле? Я про WAIT спрашиваю. Будь там ">" или ещё что.
Цитата Сообщение от Kubuntovod Посмотреть сообщение
А если на той стороне "получатель" ушёл в ребут, что вы ему отправлять собрались?
Ну так после reboot есть ещё какой-то ввод для пайпа? Перед exit нужен какой-то WAIT, иначе шило на мыло меняем.
0
0 / 0 / 0
Регистрация: 11.01.2021
Сообщений: 118
24.01.2021, 23:33  [ТС]
FlasherX, перепроверил выполнение скрипта (WSH.Sleep 10000), ошибка та же, что и ране.
0
Эксперт NIX
3308 / 935 / 202
Регистрация: 14.01.2013
Сообщений: 4,777
25.01.2021, 05:31
Цитата Сообщение от FlasherX Посмотреть сообщение
В смысле? Я про WAIT спрашиваю. Будь там ">" или ещё что.
Если вы отправили железку в ребут, то остаётся только встать на паузу, на промежуток времени, который требуется железке для полной перезагрузки. Т.к., пока она в ребуте, общаться не с кем.

Цитата Сообщение от FlasherX Посмотреть сообщение
Ну так после reboot есть ещё какой-то ввод для пайпа?
После ребута нужен логин. Железка же не в курсе, что до ребута она с кем-то чего-то обсуждала.

Цитата Сообщение от FlasherX Посмотреть сообщение
Перед exit нужен какой-то WAIT, иначе шило на мыло меняем.
Exit - это logout из телнет-сессии. В случае ребута, он не актуален. Не знаю, о каком шиле речь, я предложил более простую логику процесса. Пишем "план действий" для железки, засылаем его программой. Ждём перезагрузки. Проверяем адрес. Если "не тот", возвращаемся на начало. План, опять же, минимален. Логин, ребут. Остальное в батнике. Пауза и проверка IP.

KOHTAKT, Вы принципиальное не хотите использовать что-то, кроме VBS? Или сомневаетесь в своих силах?
1
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
25.01.2021, 12:42
Цитата Сообщение от Kubuntovod Посмотреть сообщение
В случае ребута, он не актуален.
Ладно, посмотрим.
Цитата Сообщение от Kubuntovod Посмотреть сообщение
Остальное в батнике.
В vbs-нике.

KOHTAKT, странные дела. Давайте ещё пару вариантов (если не получится, сделаем через tst10):
Visual Basic
1
2
3
4
5
6
7
8
9
Set oExe = CreateObject("WScript.Shell").Exec("plink -telnet 192.168.0.1")
Set oStd = oExe.StdIn
WSH.Sleep 200
oStd.WriteLine "admin"
oStd.WriteLine "12345"
WSH.Sleep 100
oStd.WriteLine "reboot"
Set oStd = Nothing
Set oExe = Nothing
Visual Basic
1
2
3
4
5
6
7
8
9
With CreateObject("Scripting.FileSystemObject")
   TempFile = .GetSpecialFolder(2) & "\" & .GetTempName
   With .CreateTextFile(TempFile)
     .Write "admin" & vbLf & "12345" & vbLf & "reboot"
     .Close
   End With
   CreateObject("WScript.Shell").Run "plink -telnet 192.168.0.1 -m """ & TempFile & """"
   .DeleteFile TempFile, 1
End With
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.01.2021, 12:42

Файл для автоматической перезагрузки роутера
Ребята помогите написать исполняемый файл для автоматической перезагрузки роутера. Сам не могу. Как делую: комадная строка-telnet...

Файл для автоматической перезагрузки роутера
Ребята помогите написать исполняемый файл или рабочий скрипт для автоматической перезагрузки роутера в ОС Windows. Сам не могу. Как делую: ...

Батник для перезагрузки роутера через Telnet
Подскажите как написать или ссылочку на готовый батник для перезагрузки роутера dlink. последовательность проста: подключится по айпи ...

VBS скрипт для перезагрузки ALTUSEN
Доброго всем вечера. Толковые люди данного форума подскажите кто чем может. Ни как не могу разобратся с вопросом. Предисловие: Есть...

Как написать скрипт для автоматического входа на сайт роутера?
Возможно ли на PHP написать какой-нибудь скрипт для входа на сайт роутера (192.168.1.1), ввод логина и пароля: admin, и нажатие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru