MsgBox(64,"",_RestartModem())
Func _RestartModem()
Local $msg, $recv
Local $errorkod=-1
Local $ConnectedSocket = -1
Local $router_IP="192.168.1.1"
Local $port=23
Local $RouterLogin="qe1dg7bm"; логин к роутеру
Local $RouterPass="qa6yo9km"; пароль к роутеру
TCPStartup()
$ConnectedSocket = TCPConnect($router_IP , $port )
If $ConnectedSocket = -1 Then
$errorkod= "0"
Return $errorkod
EndIf
; Message Loop
;==========
While 1
Sleep(50)
;
$recv = TCPRecv( $ConnectedSocket, 2048)
If @error Then
$errorkod= "2"
ExitLoop
EndIf
;
If $recv <> "" Then
Switch $recv
Case StringInStr($recv,"Login failed")>0
$errorkod= "6"
ExitLoop
Case StringRight($recv,7)= "Login: "
TCPSend( $ConnectedSocket , $RouterLogin & @CRLF)
If @ERROR Then
$errorkod= "3"
ExitLoop
EndIf
Case StringRight($recv, 10)="Password: "
TCPSend( $ConnectedSocket , $RouterPass & @CRLF)
If @ERROR Then
$errorkod= "4"
ExitLoop
EndIf
Case StringInStr($recv,"Login successful")>0
TCPSend( $ConnectedSocket , "system restart" & @CRLF)
If @ERROR Then
$errorkod= "5"
ExitLoop
EndIf
Case StringLeft($recv,1)=="s"; так как роутер перезагружается, то на моей машине возвращается только первая буква от сообщения что модем удачно пошел в перезагрузку...
TCPSend( $ConnectedSocket , "user logout" & @CRLF)
$errorkod= "Модем перезагружается"
ExitLoop
Case StringInStr($recv,"Logging out")>0
$errorkod= "Модем перезагружается"
ExitLoop
EndSwitch
EndIf
$recv=''
WEnd
; End Message Loop
;============
If $ConnectedSocket <> - 1 Then TCPCloseSocket($ConnectedSocket)
TCPShutdown()
Return $errorkod
EndFunc ;_RestartModem