1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. AutoITier

Beiträge von AutoITier

  • WINHTTP - Telefonanlage weist ab (Zugriff verweigert), IE.au3 geht aber

    • AutoITier
    • 9. August 2012 um 18:28

    Ich glaube, es ist sinnvoller, das via IE.au3 zu realisieren .. was meinst Du? :) Dort klappt's ja wunderbar, auch wenn der Ansatz ein anderer ist.

  • WINHTTP - Telefonanlage weist ab (Zugriff verweigert), IE.au3 geht aber

    • AutoITier
    • 5. August 2012 um 20:37

    Herzlichen Dank (!).

    PHP
    HTTP/1.1 200 OK
    Server: GoAhead-Webs
    Expires: 0
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Content-Type: text/html; charset=iso-8859-1;
    Set-Cookie: AUERSessionID=MPWMYWEQHEAPICT
    Set-Cookie: AUERWEB_COOKIE=XX
    
    
    
    
    
    
    {"login":1,"dongleState":0,"dongleError":0}
    
    
    Cookie: AUERSessionID=MPWMYWEQHEAPICT
    ; AUERWEB_COOKIE=XX
    
    
    +>20:32:59 AutoIT3.exe ended.rc:0
    >Exit code: 0    Time: 2.761
    Alles anzeigen

    Das ist die Ausgabe. Ich habe "configs_state" mal' gegen "appclose" getauscht, denn "appclose" schließt die Sitzung wieder - aber eben nur, wenn er sie zuordnen kann. Das Ergebnis: melde ich mich auf der Weboberfläche an, teilt er mir nach Skriptausführung mit, dass der User noch angemeldet ist - sprich: Abmeldevorgang klappt nicht, d.h. Cookie wird scheinbar nicht übergeben ?!

  • WINHTTP - Telefonanlage weist ab (Zugriff verweigert), IE.au3 geht aber

    • AutoITier
    • 5. August 2012 um 18:43

    Sorry, habe eben schon mehrere Varianten getestet.

    Das hier ist ja Deine (+ unten die Messagebox bzw. "configs_state"):

    [autoit]

    #include <winhttp.au3>

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $hOpen = _WinHttpOpen("Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2")
    $hConnect = _WinHttpConnect($hOpen, "192.168.4.8")

    [/autoit][autoit][/autoit][autoit]

    $sResponse = _WinHttpSimpleRequest($hConnect, "POST", "login_json", "http://192.168.4.8/", "LOGIN_NOW=true&LOGIN_NAME=XX&LOGIN_PASS=XXX")

    [/autoit][autoit][/autoit][autoit]

    $aCookies = StringRegExp($sResponse, "Set-Cookie: (.+)", 3)
    $sCookieString = ""
    For $i = 0 To UBound($aCookies) -1
    $sCookieString &= $aCookies[$i]
    If $i < UBound($aCookies) -1 Then $sCookieString &= "; "
    Next

    [/autoit][autoit][/autoit][autoit]

    $sResponse = _WinHttpSimpleRequest($hConnect, "GET", "configs_state", "http://192.168.4.8/", Default, "Cookie: " & $sCookieString)

    [/autoit][autoit][/autoit][autoit]

    msgbox(0,0,$sResponse)

    [/autoit]

    Er gibt mir nach wie vor "Forbidden" aus - und in Wireshark sehe ich, dass keine Cookies für "configs_state" übergeben werden (obwohl er dort auf diese wartet, zur Authentifizierung).

  • WINHTTP - Telefonanlage weist ab (Zugriff verweigert), IE.au3 geht aber

    • AutoITier
    • 5. August 2012 um 18:19

    Und wie bekommen wir hin, dass er den richtigen Header schickt? ^^

  • WINHTTP - Telefonanlage weist ab (Zugriff verweigert), IE.au3 geht aber

    • AutoITier
    • 5. August 2012 um 09:43

    Ich weiß, ist auch nicht meine Art. Im Anhang mal' ein Foto, auf dem oben die Daten angezeigt werden, welche bei Aufruf von /configs_state im Browser (= funktioniert) nach Anmeldung generiert werden und unten die, wenn ich es via AutoIt (WINHTTP) erledige (funktioniert nicht, trotz "Anmeldung").

    Kann es am "Cookie" bzw. "Set-Cookie" liegen?

    Dateien

    vergleich.JPG 93,34 kB – 0 Downloads
  • WINHTTP - Telefonanlage weist ab (Zugriff verweigert), IE.au3 geht aber

    • AutoITier
    • 3. August 2012 um 22:43

    Danke vielmals, klappt aber leider nicht. Ich bin mit meinem Latein gerade am Ende.

  • WINHTTP - Telefonanlage weist ab (Zugriff verweigert), IE.au3 geht aber

    • AutoITier
    • 3. August 2012 um 20:10

    Habe den Anmeldevorgang mitprotokolliert und hier abgelegt:
    http://pastebin.com/ji9xUBYg

    Ein Cookie scheint sichtbar zu sein.

  • WINHTTP - Telefonanlage weist ab (Zugriff verweigert), IE.au3 geht aber

    • AutoITier
    • 3. August 2012 um 14:48

    Vielen Dank für die Mühe, weiß ich sehr zu schätzen!

    Der Hersteller schreibt:
    "Allgemeines / Anmeldung am System
    Login, Digest Access Authentication (DAA)
    Bevor ein Befehl im ITK-System aufgerufen werden kann, ist ein Login zwingend erforderlich. Einzige Ausnahme stellt das Abfragen der Systeminformationen dar.
    Eine Autorisierung an der COMmander-6000-Serie erfolgt über Digest Access Authentication (DAA) nach RFC 2617. Dabei läuft die Session-Wiedererkennung abseits der normal üblichen Digest-Implementierung. Sie erfolgt mittels eines Cookies AUERSessionID (15 Zeichen langer Wert) vom Webserver des ITK-Systems, im ersten erfolgreichen Login. Wird dieses Cookie von der Anwendung nicht übertragen, so fordert der Konfigurationsserver bei jedem Aufruf eine erneute Autorisierung mittels Digest Access Authentication. Hierbei ist zu beachten, dass dann eine weitere Session angelegt wird. Aktuell unterstützt die COMmander-6000-Serie maximal 100 Sessions. Bei einer Überschreitung dieses Wertes werden die ältesten Teilnehmer-Sessions im Webserver des ITK-Systems gelöscht."

    Spricht das dafür, dass es klappt?

  • WINHTTP - Telefonanlage weist ab (Zugriff verweigert), IE.au3 geht aber

    • AutoITier
    • 3. August 2012 um 11:59

    Ja, Cookies werden gesetzt, definitiv. Ich dachte nur, die werden automatisch mitgenommen?

    Wie kann ich dieses Cookie "weitergeben"?

  • WINHTTP - Telefonanlage weist ab (Zugriff verweigert), IE.au3 geht aber

    • AutoITier
    • 3. August 2012 um 10:54

    Danke für den Tipp. Leider das gleiche Problem bei POST. Irgendwas wird da nicht mit übergeben. Noch eine Idee?

  • WINHTTP - Telefonanlage weist ab (Zugriff verweigert), IE.au3 geht aber

    • AutoITier
    • 2. August 2012 um 11:37

    Ja. Daher habe ich ja u.a. auch die o.g. Daten.

  • WINHTTP - Telefonanlage weist ab (Zugriff verweigert), IE.au3 geht aber

    • AutoITier
    • 2. August 2012 um 11:25

    Hallo zusammen,

    mit der IE.au3 kann ich wunderbar auf meine Telefonanlage connecten, beispielsweise so (Auszug):

    [autoit]

    Local $IE = _IECreate('http://192.168.4.8/login_json?LOGIN_NOW=&LOGIN_NAME=Name&LOGIN_PASS=Kennwort', 0,1)
    Local $ConfigState = _IENavigate($IE, 'http://192.168.4.8/teilnehmer_profil_modus_state?tnId=4209&pageindex=102')

    [/autoit]

    .

    Wichtig ist nur, dass man am Ende wieder mit "http://192.168.4.8/appclose" den Logout durchführt, weil der User ansonsten für X Minuten gesperrt ist. Das klappt alles wunderbar, u.a. auch, weil das Cookie immer weitergereicht wird.

    Ich versuchte das nun mit WINHTTP nachzustellen. Login klappt auch einwandfrei, doch bei der Folgeseite zeigt er mir immer, dass der Zugriff verweigert wurde - sprich: die TK-Anlage kann den Login nicht auf die Folgeseite beziehen.

    [autoit]

    $handle = _WinHttpOpen("Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2")
    $connect = _WinHttpConnect($handle, "192.168.4.8")
    $qCode = _WinHttpSimpleRequest($connect, "POST", "login_json", "192.168.4.8", "LOGIN_NOW=true&LOGIN_NAME=USERNAME&LOGIN_PASS=Kennwort")
    FileWrite("Eingeloggt.html", $qCode)

    [/autoit]

    Woran mag das liegen? Ich habe nun bereits so viel über WINHTTP gelesen und konnte die Fehlerursache nicht finden.

    Was meint ihr?

    Danke !

  • Auerswald TK-Anlage fernsteuern (IE.au3)

    • AutoITier
    • 29. Juli 2012 um 11:18

    Ich habe das Problem nun mit Autoit, aber ohne "Klicks" gelöst, indem ich den Traffic zwischen IE und Anlage abgehört und die Befehle somit nachgestellt habe.

  • Auerswald TK-Anlage fernsteuern (IE.au3)

    • AutoITier
    • 25. Juli 2012 um 20:41

    Wem fällt hierzu etwas ein? Können wir die Javascript-Bedienung vornehmen?

  • Auerswald TK-Anlage fernsteuern (IE.au3)

    • AutoITier
    • 3. Mai 2012 um 15:24

    Vielen Dank. Was wäre denn beispielsweise so ein Befehl (vgl. mein Quelltext oben)?

  • Auerswald TK-Anlage fernsteuern (IE.au3)

    • AutoITier
    • 27. April 2012 um 15:07

    Darf ich das Thema noch einmal hochholen? Welche Varianten gäbe es noch, die Webseite zu steuern?

  • Auerswald TK-Anlage fernsteuern (IE.au3)

    • AutoITier
    • 2. April 2012 um 08:07

    Hallo zusammen,

    ich wollte die Problemstellung gerne noch einmal hier aufgreifen. Es besteht tatsächlich "nur" die Möglichkeit, die Anlage via Webinterface zu steuern.

    Wie gehen wir mit dem JavaSkript-Problem um? Selbst wenn "Push the Button" funktionieren würde - lässt sich diese Variante unsichtbar im Hintergrund umsetzen?

    Vielen Dank !
    F1109

  • eMail-Dateien einlesen

    • AutoITier
    • 13. März 2012 um 21:44

    Das nachfolgende Skript funktioniert soweit, ABER dann nicht, wenn zwei eMails das gleiche Datum und die gleiche Uhrzeit haben (z.B. Scharf- und Unscharfschaltung kurz hintereinander = kommt zur gleichen Zeit an).

    Wie könnten wir eine For-Schleife erstellen, die ein Array füllt und zwar so: Pro eMail eine Zeile / für Datum, Uhrzeit und Ereignis jeweils eine Spalte ? Ich denke, dass das für viele von Euch easy ist - ich komme da noch nicht ganz nach.

    [autoit]

    #Include <File.au3>
    #Include <Array.au3>
    #include <String.au3>

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $aFilelist = _FileListToArray("\\server\david\Archive\GROUP\7\", "*.001")
    Dim $aFiledate[$aFilelist[0]+1]
    For $i = 1 To $aFilelist[0]
    $aFiledate[$i] = FileGetTime("\\server\david\Archive\GROUP\7\" & '\' & $aFilelist[$i], 1, 1)
    Next

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $neuesteDatei = $aFilelist[_ArrayMaxIndex($aFiledate, 1)]
    $file = "\\server\david\Archive\GROUP\7\"&$neuesteDatei
    $Datum1 = _StringBetween(FileReadLine($file, 3), "am ", " um", -1)
    $Uhrzeit1 = _StringBetween(FileReadLine($file, 3), "um ", " Uhr", -1)
    $Ereignis1 = _StringBetween(FileReadLine($file, 5), "Ereignis ", " eingetreten", -1)
    _ArrayDelete($aFiledate,$neuesteDatei)
    $neuesteDatei = $aFilelist[_ArrayMaxIndex($aFiledate, 1)]
    $file = "\\server\david\Archive\GROUP\7\"&$neuesteDatei

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $Datum2 = _StringBetween(FileReadLine($file, 3), "am ", " um", -1)
    $Uhrzeit2 = _StringBetween(FileReadLine($file, 3), "um ", " Uhr", -1)
    $Ereignis2 = _StringBetween(FileReadLine($file, 5), "Ereignis ", " eingetreten", -1)
    _ArrayDelete($aFiledate,$neuesteDatei)
    $neuesteDatei = $aFilelist[_ArrayMaxIndex($aFiledate, 1)]
    $file = "\\server\david\Archive\GROUP\7\"&$neuesteDatei

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $Datum3 = _StringBetween(FileReadLine($file, 3), "am ", " um", -1)
    $Uhrzeit3 = _StringBetween(FileReadLine($file, 3), "um ", " Uhr", -1)
    $Ereignis3 = _StringBetween(FileReadLine($file, 5), "Ereignis ", " eingetreten", -1)

    [/autoit][autoit][/autoit][autoit]

    _ArrayDelete($aFiledate,$neuesteDatei)
    $neuesteDatei = $aFilelist[_ArrayMaxIndex($aFiledate, 1)]
    $file = "\\server\david\Archive\GROUP\7\"&$neuesteDatei

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $Datum4 = _StringBetween(FileReadLine($file, 3), "am ", " um", -1)
    $Uhrzeit4 = _StringBetween(FileReadLine($file, 3), "um ", " Uhr", -1)
    $Ereignis4 = _StringBetween(FileReadLine($file, 5), "Ereignis ", " eingetreten", -1)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Dim $Test2[5][3] = [ [$Datum1[0], $Uhrzeit1[0], $Ereignis1[0]], [$Datum2[0], $Uhrzeit2[0], $Ereignis2[0]], [$Datum3[0], $Uhrzeit3[0], $Ereignis3[0]] ]

    [/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($Test2,"Übersicht")

    [/autoit]
  • eMail-Dateien einlesen

    • AutoITier
    • 13. März 2012 um 17:26

    Wie bekomme ich die drei String-Between in ein Array?

    Also jeweils eine Spalte. Darunter würde ich jeweils mit _ArrayDelete die letzte Zeile löschen und das ganze 4 x.

    #Include <File.au3>
    #Include <Array.au3>
    #include <String.au3>


    [autoit]

    $aFilelist = _FileListToArray("\\server\david\Archive\GROUP\7\", "*.001")
    Dim $aFiledate[$aFilelist[0]+1]
    For $i = 1 To $aFilelist[0]
    $aFiledate[$i] = FileGetTime("\\server\david\Archive\GROUP\7\" & '\' & $aFilelist[$i], 0, 1)
    Next

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $neuesteDatei = $aFilelist[_ArrayMaxIndex($aFiledate, 1)]
    $file = "\\server\david\Archive\GROUP\7\"&$neuesteDatei

    [/autoit][autoit][/autoit][autoit]

    Dim $result[4][3]

    [/autoit][autoit][/autoit][autoit]

    _StringBetween(FileReadLine($file, 3), "am ", " um", -1)
    _StringBetween(FileReadLine($file, 3), "um ", " Uhr", -1)
    _StringBetween(FileReadLine($file, 5), "Ereignis ", " eingetreten", -1)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($result, "Test")

    [/autoit]
  • eMail-Dateien einlesen

    • AutoITier
    • 13. März 2012 um 16:00

    Nettes Skript, danke. Ich stehe gerade davor, dass ich nicht weiß, wie ich am besten die vier letzten Dateien einlese, also die vier neuesten.

    [autoit]

    #include <String.au3>
    #include <array.au3>
    #include <file.au3>

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $aFilelist = _FileListToArray("\\server\david\Archive\GROUP\7\", "*.001")
    Dim $aFiledate[$aFilelist[0]+1]
    For $i = 1 To $aFilelist[0]
    $aFiledate[$i] = FileGetTime("\\server\david\Archive\GROUP\7\" & '\' & $aFilelist[$i], 0, 1)
    Next

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0, 'Test', 'Die aktuellste Datei ist: ' & $aFilelist[_ArrayMaxIndex($aFiledate, 1)])

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $neuesteDatei = $aFilelist[_ArrayMaxIndex($aFiledate, 1)]

    [/autoit][autoit][/autoit][autoit]

    $file = "\\server\david\Archive\GROUP\7\\"&$neuesteDatei

    [/autoit][autoit][/autoit][autoit]

    $output = FileReadLine($file, 5)
    $aResult = _StringBetween($output, "Ereignis ", " eingetreten", -1)

    [/autoit][autoit][/autoit][autoit]

    msgbox(0,"",$aResult[0])

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]

    Denn: es kommt auf die Uhrzeit an, die in der eMail steht - die ausgelesene ist ja "nur" die Zeit der eMail-Ankunft. Das kann mal' abweichen.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™