Цитата:
или другие варианты решения проблеммы
|
Когда то давно, я для своего модема-роутера
Callisto 821+ набросал такое, перегружается (при необходимости) до сих пор, хотя функцию можно оформить более професионально, но это уже вам решить, так же вам нужно заточить данную функцию для своего модема:
читать дальше »
Код:

MsgBox(64,"Message", _RestartModem(), 5)
Func _RestartModem() ;для модема-роутера Callisto 821+
Local $RouterLogin = "qe1dg7bm"
Local $RouterPass = "qa6yo9km"
Local $Router_IP = "192.168.1.1"
Local $Port = 23
Local $Recv
Local $errorkod=-1
Local $ConnectedSocket = -1
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()
if $errorkod<> "Модем перезагружается" then
Return "Не удалось перезагрузить модем. Код ошибки: "&$errorkod
else
Return "Модем перезагружается"
endif
EndFunc ;_RestartModem