Beiträge von kackeldackel
-
-
Ein/ausloggen und Wiedereinwahl bekomme ich bei meinem Router hin, aber das Request um das Wlan an/aus zu machen bekomme ich nicht hin. Wie es aussieht, gibt es drei Teile woraus es besteht: der URL, dem Post und anscheinend auch noch dem Body, aber ich hab nicht herausgefunden, wie ich den bei winhttprequest.5.1 übermittle. Das einfach in die URL oder das POST zu stecken funktioniert nicht.
So sehen das Login, Wlan anschalten und ausloggen im Browser aus:
HTTP
Alles anzeigenhttps://speedport.ip/index/login.cgi POST /index/login.cgi HTTP/1.1 Host: speedport.ip User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Content-Length: 36 Content-Type: text/plain; charset=UTF-8 Referer: https://speedport.ip/ Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Username=admin&Password=asdfasdf1324 HTTP/1.1 200 OK Set-Cookie: SessionID_R3=OaK5v3bU3Qk; path=/ Content-Type: text/plain Content-Length: 25 ---------------------------------------------------------- https://speedport.ip/auth/setcfg.cgi?x=InternetGatewayDevice.LANDevice.1&y=InternetGatewayDevice.LANDevice.1.WLANConfiguration.1&RequestFile=/auth/hcti_netzwerk.php&cookie=SessionID_R3,OaK5v3bU3Qk POST /auth/setcfg.cgi?x=InternetGatewayDevice.LANDevice.1&y=InternetGatewayDevice.LANDevice.1.WLANConfiguration.1&RequestFile=/auth/hcti_netzwerk.php&cookie=SessionID_R3,OaK5v3bU3Qk HTTP/1.1 Host: speedport.ip User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Cookie: SessionID_R3=OaK5v3bU3Qk Referer: https://speedport.ip/ Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 153 x.X_WLANEnable=1&y.Enable=1&y.X_DependOnScheduleRule=0&y.X_WlanStandard=g%2Fn&y.TransmitPower=20&y.X_MaxBitRateEnable=1&y.AutoChannelEnable=1&y.Channel=6 HTTP/1.1 302 Cache-Control: no-cache Content-Type: text/html Location: https://speedport.ip/auth/hcti_netzwerk.php?cookie=SessionID_R3,OaK5v3bU3Qk Content-Length: 0 ---------------------------------------------------------- https://speedport.ip/auth/logout.cgi?RequestFile=/pub/top_beenden.php&cookie=SessionID_R3,OaK5v3bU3Qk POST /auth/logout.cgi?RequestFile=/pub/top_beenden.php&cookie=SessionID_R3,OaK5v3bU3Qk HTTP/1.1 Host: speedport.ip User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Cookie: SessionID_R3=OaK5v3bU3Qk Referer: https://speedport.ip/ Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 0 HTTP/1.1 302 Cache-Control: no-cache Content-Type: text/html Location: https://speedport.ip/ Content-Length: 0
Das ist derQuellcode von meinem Script:Code
Alles anzeigen#include <log.au3> ; ---- Login $oHTTP = ObjCreate("winhttp.winhttprequest.5.1") $oHTTP.Open("POST", "http://speedport.ip/index/login.cgi", False) $oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded") $oHTTP.Send("Username=admin&Password=asdfasfsd123") _logit("login s: " & @error) ;Get received data $oStatusCode = $oHTTP.Status _logit("login: " & $oStatusCode) $oHeaderResponses = $oHTTP.GetAllResponseHeaders() ;ClipPut($oHeaderResponses) _logit("header: " & $oHeaderResponses) $oReceived = $oHTTP.ResponseText $file = FileOpen("R:\1login.html",2) FileWrite($file,$oReceived) FileClose($file) ; get session $cookie = StringRegExp($oHeaderResponses,"Set-Cookie: (SessionID_R3=\w{11}); path",3) ; SessionID_R3=eauTnzR0EeY für cookies $cookie = $cookie[0] _logit("cookie: " & $cookie) $session = StringReplace($cookie,"=",",") ; SessionID_R3,eauTnzR0EeY für urls $oHTTP.Open("POST", "https://speedport.ip/auth/setcfg.cgi?x=InternetGatewayDevice.LANDevice.1&y=InternetGatewayDevice.LANDevice.1.WLANConfiguration.1&RequestFile=/auth/hcti_netzwerk.php&cookie=" & $session, False) ; cookie $oHTTP.SetRequestHeader("Cookie", $cookie) $oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded") ;Send POST request $oHTTP.Send("x.X_WLANEnable=1&y.Enable=1&y.X_DependOnScheduleRule=0&y.X_WlanStandard=g%2Fn&y.TransmitPower=20&y.X_MaxBitRateEnable=1&y.AutoChannelEnable=1&y.Channel=6") _logit("wlan s: " & @error) ;Get received data $oStatusCode = $oHTTP.Status _logit("wlan: " & $oStatusCode) $oHeaderResponses = $oHTTP.GetAllResponseHeaders() _logit("header: " & $oHeaderResponses) $oReceived = $oHTTP.ResponseText $file = FileOpen("R:\2wlan.html",2) FileWrite($file,$oReceived) FileClose($file) $oHTTP.Open("POST", "http://speedport.ip/auth/logout.cgi?RequestFile=/pub/top_beenden.php&cookie=" & $session, False) $oHTTP.SetRequestHeader("Cookie", $cookie) $oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded") $oHTTP.Send() _logit("logout s: " & @error) ;Get received data $oStatusCode = $oHTTP.Status _logit("logout: " & $oStatusCode) $oHeaderResponses = $oHTTP.GetAllResponseHeaders() _logit("header: " & $oHeaderResponses) $oReceived = $oHTTP.ResponseText $file = FileOpen("R:\3logout.html",2) FileWrite($file,$oReceived) FileClose($file) Sleep(12345)
Log.au3 ist nur fürs (Debug)Output da:C
Alles anzeigen#include <GUIConstantsEx.au3> ; var for on close event #include <WindowsConstants.au3> ; var for resizable Opt("GUIOnEventMode", 1) ; Change to OnEvent mode $fensterx = 515 ; ui width $fenstery = 300 ; ui heigth $guiwintext = StringLeft(@ScriptName,StringLen(@ScriptName)-4) $guiwin = GUICreate($guiwintext,$fensterx,$fenstery,600,700,$WS_OVERLAPPEDWINDOW) ;creates the resizable loggui GUISetOnEvent($GUI_EVENT_CLOSE, "_log_win_close") ; registering the close event $guiedit = GUICtrlCreateEdit("Starting up...",0,0,$fensterx,$fenstery) ;creates the textfield in the gui GUISetState(@SW_SHOW) ; shows it Func _log_win_close() Exit EndFunc Func _logit($text) GUICtrlSetData($guiedit, @HOUR & ":" & @MIN & ":" & @SEC & " " & $text & @CRLF, "append") ; creates logentry EndFunc ;==>_logit Func _clear_edit_box() $tmp = GUICtrlRead($guiedit) ;If StringLen($tmp) > 29500 Then If StringLen($tmp) > 20000 Then GUICtrlSetData($guiedit,StringTrimLeft($tmp,5000)) EndIf EndFunc ;==>_clear_edit_box#include <GUIConstantsEx.au3> ; var for on close event #include <WindowsConstants.au3> ; var for resizable Opt("GUIOnEventMode", 1) ; Change to OnEvent mode $fensterx = 515 ; ui width $fenstery = 300 ; ui heigth $guiwintext = StringLeft(@ScriptName,StringLen(@ScriptName)-4) $guiwin = GUICreate($guiwintext,$fensterx,$fenstery,600,700,$WS_OVERLAPPEDWINDOW) ;creates the resizable loggui GUISetOnEvent($GUI_EVENT_CLOSE, "_log_win_close") ; registering the close event $guiedit = GUICtrlCreateEdit("Starting up...",0,0,$fensterx,$fenstery) ;creates the textfield in the gui GUISetState(@SW_SHOW) ; shows it Func _log_win_close() Exit EndFunc Func _logit($text) GUICtrlSetData($guiedit, @HOUR & ":" & @MIN & ":" & @SEC & " " & $text & @CRLF, "append") ; creates logentry EndFunc ;==>_logit Func _clear_edit_box() $tmp = GUICtrlRead($guiedit) ;If StringLen($tmp) > 29500 Then If StringLen($tmp) > 20000 Then GUICtrlSetData($guiedit,StringTrimLeft($tmp,5000)) EndIf EndFunc ;==>_clear_edit_box
Das Problem scheint diese Passage zu sein:CodeContent-Length: 153 x.X_WLANEnable=1&y.Enable=1&y.X_DependOnScheduleRule=0&y.X_WlanStandard=g%2Fn&y.TransmitPower=20&y.X_MaxBitRateEnable=1&y.AutoChannelEnable=1&y.Channel=6
Wie gebe ich die denn bei Autoti weiter?