Что нового

Скрипт отключение Wi-Fi на роутере DIR-320 через веб-панель

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
claster
Спасибо конечно за то, что моё сообщение вам пригодилось, но чем оно для вас стало полезным, я признаться не понимаю.
Если вы не хотите выкладывать здесь то, о чём я вас попросил, тогда можете прислать мне на ЛС.
У меня тоже стоит роутер, и я его уже облазил вдоль и поперёк, скорее всего ваш роутер построен по тому же принципу что и мой. ;D Я просто хотел взглянуть на ваш HTML код страницы, которая расположена на 4.png. Может, я смог бы вам подсказал, как сделать проще.
В общем, дело ваше, я подскажу вам направление, а дальше думайте. :smile:
Дело в том, что на роутере стоит ядро Linux и подняты сервисы NAT, DHCP и т.д. ну и, конечно же, простенький WEB сервер. ;)
Вот к нему-то родимому вы и обращаетесь когда заходите в Admin-панель. Следовательно, что вам мешает использовать POST и GET запросы? Ничего! Но, для этого нужно изучить сначала HTML и JScript код файлов, которые грузятся в момент вашей работы с Admin-панелью.
Вот так, к примеру, вы можете зайти в Admin-панель, не открывая браузера, и получить HTML код страницы status.
Код:
$sPageSource = _GSCPR('192.168.1.1', 'login', 'password', 'status.htm')
If Not @error Then _
	ConsoleWrite("--> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" & @CRLF)
	ConsoleWrite("--> Get Source Code Page Router.: " & @CRLF)
	ConsoleWrite("--> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" & @CRLF)
	ConsoleWrite($sPageSource & @CRLF)

; Get Source Code Page Router
Func _GSCPR($s_Gateway, $s_Login, $s_Passw, $s_Page)
	
	Local $b_Result = 0, $s_Result = ''
	
	$b_Result = InetRead('http://'& $s_Login &':'& $s_Passw &'@'& $s_Gateway &'/'& $s_Page)
	If @error Or $b_Result = '' Then _
		Return SetError(1, 0 , 0)
	$s_Result = BinaryToString($b_Result)	
	Return SetError(0, 0 , $s_Result)
EndFunc ;=> _GSCPR()

Ну а дальше всё в ваших руках.



Добавлено:
Сообщение автоматически объединено:

Кстати, таким образом, я слежу за состоянием своего роутера и получаю свой WAN IP.
Код:
$sWIP = StringRegExpReplace($sPageSource , "(?m)(?s).*WAN.*?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).*", "\1")
 
Автор
C

claster

Новичок
Сообщения
9
Репутация
1
Спасибо. Дело в том что я во всем разобрался.

Код скрипта:

Код:
#include <IE.au3>

$oIE = _IECreate ("URL-ДЛЯ-ДОСТУПА-К-ПАНЕЛИ", 0, 0, 1, 1)

$oForm   = _IEFormGetCollection($oIE,0)
$oSearchInputText  = _IEFormElementGetObjByName($oForm,"LOGIN_USER")
_IEFormElementSetValue($oSearchInputText, "ЛОГИН-ПОЛЬЗОВАТЕЛЯ")

$oSearchInputText  = _IEFormElementGetObjByName($oForm,"LOGIN_PASSWD")
_IEFormElementSetValue($oSearchInputText,"ПАРОЛЬ-ПОЛЬЗОВАТЕЛЯ")

_IEFormSubmit($oForm,0)
_IELoadWait($oIE)

; путь к странице настройки Wi-Fi
_IENavigate ($oIE, "URL-ДЛЯ-ДОСТУПА-К-ПАНЕЛИ/bsc_wlan.php")


$oForm   = _IEFormGetCollection($oIE,1)

_IEFormElementCheckboxSelect ($oForm, 0, "enable", 1, "byIndex")

$oForm2 = _IEGetObjByName ($oIE, "apply")
$oForm2.click()

_IELoadWait($oIE)
_IEQuit($oIE)


Вообще я просто в восторге от возможностей и простоты AutoIt
 
Верх