Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI/HTA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 1
1
VBS

Перезагрузка Wi-Fi-роутеров

13.05.2015, 06:41. Показов 3014. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вопрос в чем, у меня есть 15 роутеров wi fi как написать скрипт для параллельной перезагрузки всех роутеров

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Set WshShell = CreateObject("Wscript.Shell")    
RetCode = WshShell.Run("cmd", 1, False)         
WScript.Sleep 2000  
 
                            
WshShell.SendKeys "puttytel 192.168.101.11{ENTER}" 
                        
WScript.Sleep 2000                              
WshShell.SendKeys "admin{ENTER}"                
WScript.Sleep 2000                              
WshShell.SendKeys "пароль{ENTER}"                
WScript.Sleep 2000                              
WshShell.SendKeys "reboot{ENTER}"               
WScript.Sleep 2000                             
WshShell.SendKeys "exit{ENTER}"

Это для одного, а как сделать параллельно а не последовательно?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2015, 06:41
Ответы с готовыми решениями:

Маршрутизация роутеров
Всем здравствуйте. У меня назрел такой вопрос к тем кто разбирается, в организации есть сеть wi-fi...

ПК не пингуют из-за роутеров
Не могу решить ету проблему. Помогите, пожалуйста Задание звучит так: дана сеть 192.168.5.0/24....

Цепочка из Wi-Fi роутеров
Добрый день. Собственно вопрос. Стоит модем D-Link DSL 2750U Он раздает инет как по проводкам...

Объединение роутеров
Помогите объединить роутеры, чтобы можно было обменивать информацией между всеми компьютерами

9
2618 / 548 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
13.05.2015, 17:15 2
Цитата Сообщение от Samalandar Посмотреть сообщение
... как сделать параллельно...
Приведённый в вашем сообщении сценарий переделайте так, чтобы он принимал в качестве аргумента строку, являющуюся IP-адресом одного маршрутизатора.
Напишите другой сценарий, в котором задайте массив строк, представляющих собой IP-адреса всех нужных маршрутизаторов. В этом сценарии организуйте цикл, перебирающий значения массива. На каждом шаге цикла вызывайте (с помощью уже известного вам метода Run объекта WshShell) первый сценарий, передавая ему в строке вызова в качестве аргумента текущий IP-адрес. Процесс вызывайте без ожидания его завершения.
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
14.05.2015, 08:27 3
Dmitrii, а у него ведь отправка сочетаний в активное окно, как же тут без ожидания завершения?
0
2618 / 548 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
14.05.2015, 08:52 4
Dragokas, верное замечание. Стало быть, задача автора темы при таких условиях решения не имеет.
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
14.05.2015, 13:51 5
Не работал с putty, может как то возможно перенаправить ввод на нее сразу при создании процесса.
Надо потестировать на живом.

И, последний вариант, отправка сочетаний в неактивное окно с помощью сторонних средств.
Как будет время, посмотрю...
0
251 / 239 / 16
Регистрация: 31.12.2009
Сообщений: 324
14.05.2015, 16:05 6
А может что-нибудь такое подойдет? только вот отладить бы его ещё в боевых условиях:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
If WScript.Arguments.Count <> 0 Then
        call reboot_one(WScript.Arguments(0), WScript.Arguments(1))
        WScript.Quit()
End If
 
 
set objWSH = CreateObject("WScript.Shell")
 
objWSH.Run("cscript.exe //nologo " & WScript.ScriptName & " 192.168.0.1  passwd-01")
objWSH.Run("cscript.exe //nologo " & WScript.ScriptName & " 192.168.0.2  passwd-02")
objWSH.Run("cscript.exe //nologo " & WScript.ScriptName & " 192.168.0.3  passwd-03")
objWSH.Run("cscript.exe //nologo " & WScript.ScriptName & " 192.168.0.4  passwd-04")
objWSH.Run("cscript.exe //nologo " & WScript.ScriptName & " 192.168.0.5  passwd-05")
objWSH.Run("cscript.exe //nologo " & WScript.ScriptName & " 192.168.0.6  passwd-06")
objWSH.Run("cscript.exe //nologo " & WScript.ScriptName & " 192.168.0.7  passwd-07")
objWSH.Run("cscript.exe //nologo " & WScript.ScriptName & " 192.168.0.8  passwd-08")
objWSH.Run("cscript.exe //nologo " & WScript.ScriptName & " 192.168.0.9  passwd-09")
objWSH.Run("cscript.exe //nologo " & WScript.ScriptName & " 192.168.0.10 passwd-10")
objWSH.Run("cscript.exe //nologo " & WScript.ScriptName & " 192.168.0.11 passwd-11")
objWSH.Run("cscript.exe //nologo " & WScript.ScriptName & " 192.168.0.12 passwd-12")
objWSH.Run("cscript.exe //nologo " & WScript.ScriptName & " 192.168.0.13 passwd-13")
objWSH.Run("cscript.exe //nologo " & WScript.ScriptName & " 192.168.0.14 passwd-14")
objWSH.Run("cscript.exe //nologo " & WScript.ScriptName & " 192.168.0.15 passwd-15")
 
set objWSH = Nothing
 
Wscript.Quit()
 
 
 
sub reboot_one(strIP, strPW)
 
    set objWSH = CreateObject("WScript.Shell")
 
    set objA = objWSH.Exec("puttytel " & strIP)
    WScript.Sleep 2000
 
    objA.StdIn.Write("admin")
    WScript.Sleep 2000
 
    objA.StdIn.Write(strPW)
    WScript.Sleep 2000
 
    objA.StdIn.Write("reboot")
    WScript.Sleep 2000
 
    'objA.StdIn.Write("exit")
 
    set objA = Nothing
    set objWSH = Nothing
 
end sub
1
30 / 30 / 4
Регистрация: 24.02.2012
Сообщений: 19
20.05.2015, 02:02 7
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Чтобы не заморачиваться с консольными утилитами, или, что хуже, с .SendKeys, это можно сделать с помощью VBS, используя XHR запросы. Но сначала придется исследовать API web-интерфейсы роутеров - выяснить какие заголовки и данные нужно отправлять с запросом, чтобы добраться до команды перезагрузки. Например, для моего роутера DIR-620 оказалось достаточно 2 запросов: авторизация и, собственно, сама команда перезагрузки:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
' Авторизация
 
' Отправляемые заголовки
' Host: 192.168.0.1
' Connection: keep-alive
' Content-Length: 30
' Cache-Control: max-age=0
' Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
' Origin: h ttp://192.168.0.1
' User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36
' Content-Type: application/x-www-form-urlencoded
' Referer: h ttp://192.168.0.1/index.cgi
' Accept-Encoding: gzip, deflate
' Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4,fr;q=0.2
' Cookie: cookie_lang=rus; arp_scroll_position=0
 
' Отправляемые данные формы
' A1:admin
' A2:26009097
' auth:auth
 
sFormData = "A1=admin&A2=26009097&auth=auth"
 
arrHds = Array(_
    Array("Host", "192.168.0.1"), _
    Array("Connection", "keep-alive"), _
    Array("Content-Length", Len(sFormData)), _
    Array("Cache-Control", "max-age=0"), _
    Array("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"), _
    Array("Origin", "http://192.168.0.1"), _
    Array("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36"), _
    Array("Content-Type", "application/x-www-form-urlencoded"), _
    Array("Referer", "http://192.168.0.1/index.cgi"), _
    Array("Accept-Encoding", "gzip, deflate"), _
    Array("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4,fr;q=0.2"), _
    Array("Cookie", "cookie_lang=rus; arp_scroll_position=0")_
)
 
XmlHttpRequest "POST", "http://192.168.0.1/index.cgi", arrHds, sFormData, sRH, sRT
 
' Команда на перезагрузку
 
' Отправляемые заголовки
' Accept:text/html, */*
' Accept-Encoding:gzip, deflate, sdch
' Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4,fr;q=0.2
' Connection:keep-alive
' Cookie:arp_scroll_position=0; client_login=admin; client_password=26009097; cookie_lang=rus
' Host:192.168.0.1
' If-Modified-Since:Wed, 20 May 2015 01:06:40 GMT
' Referer:h ttp://192.168.0.1/
' User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36
' X-Requested-With:XMLHttpRequest
 
' Отправляемые параметры запроса
' menu:s
' action:r
' xml_http_request:yes
 
arrHds = Array(_
    Array("Accept", "text/html, */*"), _
    Array("Accept-Encoding", "gzip, deflate, sdch"), _
    Array("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4,fr;q=0.2"), _
    Array("Connection", "keep-alive"), _
    Array("Cookie", "arp_scroll_position=0"), _
    Array("Cookie", "client_login=admin"), _
    Array("Cookie", "client_password=26009097"), _
    Array("Cookie", "cookie_lang=rus"), _
    Array("Host", "192.168.0.1"), _
    Array("If-Modified-Since", Now()), _
    Array("Referer", "http", "//192.168.0.1/"), _
    Array("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36"), _
    Array("X-Requested-With", "XMLHttpRequest")_
)
 
XmlHttpRequest "GET", "http://192.168.0.1/index.cgi?menu=s&action=r&xml_http_request=yes", arrHds, "", sRH, sRT
 
CreateObject("WScript.Shell").PopUp "Completed", 1, , 64
 
Sub XmlHttpRequest(sMethod, sUrl, arrSetHeaders, sData, sRespHeaders, sRespText)
    Dim arrHeader
    With CreateObject("Msxml2.XMLHTTP")
        .Open sMethod, sUrl, False
        For Each arrHeader In arrSetHeaders
            .SetRequestHeader arrHeader(0), arrHeader(1)
        Next
        .Send sData
        sRespHeaders = .GetAllResponseHeaders
        sRespText = .ResponseText
    End With
End Sub
Все данные я нашел с помощью браузера (Chrome - F12 - вкладка Network), проделав вышеописанные действия в нем вручную. Прикрепил пару скриншотов, на первом показан POST-запрос для авторизации, на втором - GET-запрос на перезагрузку.

Далее останется лишь организовать запуск нескольких скриптов (для каждого роутера - свой), либо асинхронные запросы внутри одного скрипта.
Миниатюры
Перезагрузка Wi-Fi-роутеров   Перезагрузка Wi-Fi-роутеров  
4
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
20.05.2015, 09:26 8
omegastripes, спасибо за пример. А чему равны константы sRH, sRT?
0
30 / 30 / 4
Регистрация: 24.02.2012
Сообщений: 19
20.05.2015, 12:15 9
В общем случае переменные sRH, sRT служат для возврата из подпрограммы результатов запроса - заголовков и данных соответственно, кокретно в этом случае я их использовал для отладки.
2
30 / 30 / 4
Регистрация: 24.02.2012
Сообщений: 19
09.02.2016, 23:05 10
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Может кому пригодится, скрипт для перезагрузки роутера D-Link DSL-2640U:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
' DSL-2640U reboot
' login: admin
' password: 26009097
 
sFormData = "v2=y&rs_type=html&A1=admin&A2=26009097&auth=auth"
 
arrHds = Array(_
    Array("Accept", "text/html,application/xhtml+xml,*/*"), _
    Array("Referer", "http://192.168.1.1/index.cgi"), _
    Array("Accept-Language", "ru-RU"), _
    Array("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko"), _
    Array("Content-Type", "application/x-www-form-urlencoded"), _
    Array("Accept-Encoding", "gzip, deflate"), _
    Array("Host", "192.168.1.1"), _
    Array("Content-Length", Len(sFormData)), _
    Array("DNT", "1"), _
    Array("Connection", "Keep-Alive"), _
    Array("Cache-Control", "no-cache"), _
    Array("Cookie", "cookie_lang=rus"), _
    Array("Cookie", "client_login=admin"), _
    Array("Cookie", "client_password=26009097") _
)
 
XmlHttpRequest "POST", "http://192.168.1.1/index.cgi", arrHds, sFormData, sRH, sRT
 
arrHds = Array(_
    Array("Accept", "*/*"), _
    Array("Referer", "http://192.168.1.1/index.cgi"), _
    Array("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko"), _
    Array("X-Requested-With", "XMLHttpRequest"), _
    Array("Cookie", "cookie_lang=rus"), _
    Array("Cookie", "client_login=admin"), _
    Array("Cookie", "client_password=26009097") _
)
 
XmlHttpRequest "GET", "http://192.168.1.1/index.cgi?res_cmd=6&res_buf=null&res_cmd_type=nbl&v2=y&rq=y", arrHds, "", sRH, sRT
 
CreateObject("WScript.Shell").PopUp "Completed", 1, , 64
 
Sub XmlHttpRequest(sMethod, sUrl, arrSetHeaders, sData, sRespHeaders, sRespText)
    Dim arrHeader
    With CreateObject("Msxml2.ServerXMLHTTP")
        .Open sMethod, sUrl, False
        For Each arrHeader In arrSetHeaders
            .SetRequestHeader arrHeader(0), arrHeader(1)
        Next
        .Send sData
        sRespHeaders = .GetAllResponseHeaders
        sRespText = .ResponseText
    End With
End Sub
3
09.02.2016, 23:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.02.2016, 23:05
Помогаю со студенческими работами здесь

Отследить ip адрес роутеров
Есть сеть беспроводная сеть разнесенная в нескольких городах,работники ставят вай фай роутеры что...

CPT: настройка роутеров
Помогите пожалуйста, уже 2 дня убил не могу никак сделать чтобы можно было пинговать компи друг с...

Сеть из двух роутеров
Постараюсь внятно обьяснить проблему.Имеется два роутера-D-Link 2650u и Level One WBR-3406TX....

Виртуализация коммутаторов и роутеров
Добрый день. Нужно создать виртуальную сеть, состоящую из рабочих станций, коммутаторов и роутеров....

Wi-Fi сеть из двух роутеров
Всем привет. В общем, ситуация следующая: имеется большое здание, которое надо покрыть сетью...

Маршрутизация двух роутеров
Доброго времени суток! У меня такая ситуация, есть два wi-fi роутера. К каждому подключен интернет...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru