IPs aus einer HTML-Seite auslesen

  • Hallo zusammen,

    erstmal der Grundgedanke von meinem Projekt:
    Es sollen von einer bzw. mehreren vorgegeben Seiten die Proxys ausgelesen (funktioniert schon, da ich den kompletten Text auf der Seite kopiere und der Online Proxychecker sich selbst die IPs raussucht :) ), dann in den Proxychecker kopiert, durchgescannter und anschließend die funktionierenden IPs aus der Page des Online Checkers ausgelesen werden.

    Dabei listet der Proxychecker nac dem Scan alle funktionierenden Proxys in folgender Form auf:

    Zitat

    127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080


    Also ist hoffentlich nicht so schwer zum auslesen?!

    Hier mein bisheriger Code:

    [autoit]

    #include <IE.au3>

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

    ;Proxys auslesen
    $proxypage1 = _IECreate ("http://www.proxy-list.net/transparent-proxy-lists.shtml")
    $proxys1 = _IEBodyReadText ($proxypage1)

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

    ;Proxys testen
    $proxychecker = _IECreate ("http://www.checker.freeproxy.ru/checker/index.php")
    $oForm = _IEFormGetObjByName ($proxychecker, "checkproxyform")
    $oQuery = _IEFormElementGetObjByName ($oForm, "proxy")
    _IEFormElementSetValue ($oQuery, $proxys1)
    _IEFormSubmit ($oForm)

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

    ;Warten bis alle gescannt sind
    _IELoadWait($proxychecker)

    [/autoit]

    Hoffe ihr habt alles verstanden und könnt mir helfen ;)

    gruß

  • Leider kann ich Dir nicht helfen,
    aber ich möchte mich bei Dir bedanken.

    Dankt der zweiten URL in Deinem Script habe ich erfahren, wie offen mein PC WAR. Jetzt ist nur noch 80, 8080, und 3xxx (geheim) offen. Mehr braucht man ja nicht. Port zum Emailtransfer wird bei Bedarf geöffnet und danach wieder geschlossen.

    Danke nochmals für die "nichtwissende" Hilfe und viel Erfolg. Ich glaube Du wirst nicht lange auf Erfolg warten, denn hier findet man fast immer Hilfe. Aber wenn jemand etwas ungewöhnliche möchte und denkt es geht nicht, wird dieser oftmals seines Denkens enttäuscht.

    Gruss, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Schön, dass ich dir, wenn auch ungewollt, helfen konnte ;)

    Hoffe mir kann auch jemand helfen :)

    gruß

  • Ich habe da eine Idee, weiß aber nicht ob diese mit AutoIt so umzusetzen ist.

    Wenn man im Dos-Modus den Befeht "tracert" nutzt kann man das Ergebnis in eine Textdatei umleten lassen.
    Die erste Zeile hat dann in eckigen Klammern die IP der aufgerufenen Internetseite. Alles andere kann man verwerfen oder vielleicht ja doch für anderes nutzen.

    Aus der Text-Datei lesen ist ja möglich, aber das andere weiß ich leider NOCH nicht.

    Gruss, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hallo,

    hier hab ich mal was:

    Spoiler anzeigen
    [autoit]

    #region Includes
    #include <Array.au3>
    #include <IE.au3>
    #endregion Includes

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

    ;Proxys auslesen
    $proxypage1 = _IECreate("http://www.proxy-list.net/transparent-proxy-lists.shtml")
    $proxys1 = _IEBodyReadText($proxypage1)

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

    $IPs = StringRegExp($proxys1,"(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])(:[0-9]{2,5})?",4)

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

    For $i=0 To Ubound($IPs)-1
    $tmp = _ArrayToString($IPs[$i]," ")
    $IPs[$i] = StringLeft($tmp, StringInstr($tmp," ") )
    Next
    _ArrayDisplay($IPs)

    [/autoit]

    ist zwar etwas komisch, geht aber.

    Viele Grüße
    Stilgar

    [EDIT]
    Alina:

    Das geht auch mit TCPNameToIP(), oder wolltest du mehr wissen?

    Einmal editiert, zuletzt von Stilgar (20. August 2007 um 21:35)

  • Danke mal dafür, war zwar nicht genau das was ich wollte, aber kann ich trotzdem gebrauchen ;)

    Zu dem von Stilgar programmierten Code:
    Wie kann ich die IPs aus dem Array nun weiter verwenden, d.h. in das Input Feld des Onlinescanners einfügen?

    Nun zu dem eigentlichen von mir gewünschten Code:
    Man kopiert in den Online Proxy Scanner einige Proxys. Diese werden dann getestet. Ist der Online Scanner fertig, werden am Ende der Seite !nur! die funktionierenden Proxys angezeigt. Hier ein Screenshot:
    [Blockierte Grafik: http://files.fastpic.de/Unbenannt_4975.JPG]

    Die Proxys im rot markierten Bereich sind die funktionierenden und sollen ausgelesen werden. Hierbei funktioniert der Code von Stilgar aber nicht, da ansonsten auch die nicht funktionierenden (in der Tabelle) kopiert werden würden.

    Hoffe es nimmt sich einer dem Problem an ;)

    gruß

    PS: Hier noch der Quellcode der Seite nach dem Proxy Scannen:

    Spoiler anzeigen
  • Habe es mal so gemacht...

    Spoiler anzeigen
    [autoit]


    #include <IE.au3>
    #include <Array.au3>
    #include <String.au3>

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

    ;Proxys auslesen
    $proxypage1 = _IECreate ("http://www.proxy-list.net/transparent-proxy-lists.shtml")
    $proxys1 = _IEBodyReadText ($proxypage1)

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

    ;--- Beginn Yarella Code ---
    ; Proxyliste schliessen, da Job erledigt
    If WinExists("Transparent Proxy") Then
    WinClose("Transparent Proxy", "") ;IE-Fenster schliessen
    Endif
    ;--- Ende Yarella Code ---

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

    ;Proxys testen
    $proxychecker = _IECreate ("http://www.checker.freeproxy.ru/checker/index.php")
    $oForm = _IEFormGetObjByName ($proxychecker, "checkproxyform")
    $oQuery = _IEFormElementGetObjByName ($oForm, "proxy")
    _IEFormElementSetValue ($oQuery, $proxys1)
    _IEFormSubmit ($oForm)

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

    ;Warten bis alle gescannt sind
    _IELoadWait($proxychecker)

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

    ;--- Beginn Yarella Code ---
    $proxys_ok = _IEBodyReadText ($proxychecker) ;Quelltext lesen
    ;Aus Quelltext die IP's holen
    $anfang = "Good HTTP proxies:"
    $ende = "back"
    $gesucht = _StringBetween($proxys_ok, $anfang ,$ende)
    $gesucht = $gesucht[0]

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

    ;Gute Proxys in Datei ausgeben
    $savefile = @ScriptDir & "\proxy.txt"
    ;Datum / Zeit aktuell
    $aktuell = @MDAY & "." & @MON & "." & @YEAR & " - " & @HOUR & ":" & @MIN & ":" & @SEC

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

    If FileExists($savefile) Then
    $write_in = FileOpen($savefile, 1)
    FileWriteLine($write_in, $aktuell)
    FileWriteLine($write_in, "Good HTTP proxies:" & @CR)
    FileWriteLine($write_in, $gesucht)
    FileWriteLine($write_in, "------")
    Else
    $write_in = FileOpen($savefile, 1)
    FileWriteLine($write_in, $aktuell)
    FileWriteLine($write_in, "Good HTTP proxies:" & @CR)
    FileWriteLine($write_in, $gesucht)
    FileWriteLine($write_in, "------")
    EndIf
    FileClose($write_in)

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

    ;Gute Proxys ausgeben
    MsgBox(0, "Good Proxy", "Good HTTP proxies:" & $gesucht)
    ;--- Ende Yarella Code ---

    [/autoit]

    MfG
    Yarella

  • Sry für Doppelpost, aber ansonsten bemerkt das hier keiner...

    Und zwar hab ich noch eine Frage zu dem Code von Stilgar:
    Wie kann man ihn so umschreiben, dass er die IP von folgender Seite ausliest?
    http://www.samair.ru/proxy/type-07.htm

    Hier ist der Unterschied, dass ein Leerzeichen zwischen Doppelpunkt und Port ist (127.0.0.1: 1234)..

    Hier nochmal der Code:

    Spoiler anzeigen
    [autoit]

    $proxypage1 = _IECreate ("http://www.samair.ru/proxy/type-07.htm")
    $proxys1 = _IEBodyReadText ($proxypage1)


    $IPs = StringRegExp($proxys1,"(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])(:[0-9]{2,5})?",4)
    $IP2 = ""

    For $i=0 To Ubound($IPs)-1
    $tmp = _ArrayToString($IPs[$i]," ")
    $IP2 &= StringLeft($tmp, StringInstr($tmp," ") ) & @crlf
    Next

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

    ; Proxyliste schliessen, da Job erledigt
    _IEQuit ($proxypage1)

    [/autoit]

    gruß

    Einmal editiert, zuletzt von Steve1405 (23. August 2007 um 02:04)

    • Offizieller Beitrag

    Hi,

    naja dann würde das ArrayToString nicht gehen.

    Das hier ist zwar sparsam aber funktioniert:

    [autoit]


    #include<IE.au3>
    #include<Array.au3>
    $proxypage1 = _IECreate("http://www.samair.ru/proxy/type-07.htm")
    $IPs = StringRegExp(_IEBodyReadText($proxypage1), "\d+\.\d+\.\d+\.\d+\: \d+", 3)
    _ArrayDisplay($IPs)

    [/autoit]

    So long,

    Mega

  • Oder du machst es so:


    dann können Leerzeichen vor und hinter dem Doppelpunkt sein, oder auch nicht:

    Code
    (25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])( *: *[0-9]{2,5})?

    Viele Grüße
    Stilgar

  • Danke für eure Hilfe, aber leider funktioniert das nicht -.- Habe hier mal den Quelltext der Zeile rauskopiert. Ich hoffe damit könnt ihr dann was anfangen ;)

    Spoiler anzeigen
    Code
    <td><span class="proxy62441">195</span>.<span class="proxy62441">113</span>.161.83:
    3127</td>

    gruß

  • Ja es geht schon aber bei dir krieg ich das nicht in eine Variable, dass es wie folgt ausgegeben wird:
    123.456.123.342:1234
    123.456.123.342:1234
    123.456.123.342:1234
    123.456.123.342:1234

    Weil mit den Arrays hab ich noch so meine Probleme :)

    gruß

    • Offizieller Beitrag

    Hi,

    8)

    [autoit]

    #include<IE.au3>
    $proxypage1 = _IECreate("http://www.samair.ru/proxy/type-07.htm")
    $IPs = StringRegExp(_IEBodyReadText($proxypage1), "\d+\.\d+\.\d+\.\d+\: \d+", 3)

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

    For $i = 0 To UBound($IPs) - 1
    ConsoleWrite($IPs[$i] & @CRLF) ; Ausgabe in die Console
    MsgBox(64, 'Eintrag : ' & $i & ' von ' & UBound($IPs), $IPs[$i])
    Next

    [/autoit]

    So long,

    Mega

  • Funktioniert das so bei dir? Weil bei mir überspringt das Programm die For-Schleife einfac 8|

    gruß

  • Bei mir funktioniert der Code von Xenobiologist.
    Allerdings funktioniert der neue Code von Stilgar nicht. Damit wird bei mir alles bis zu den : (Doppelpunkten) angezeigt. Der Port fehlt. ?(

    MfG
    Yarella