*****************
TEST AUFGABE:
*****************
Proxies einlesen, prüfen ob diese funktionieren und anonym sind
und dann Testzugriff auf eine Testeite.
Du kannst dafür entweder Deinen eigenen Webspace verwenden oder falls
Du sowas nicht hast dann einfach mit Deiner lokalen Apache Installation
unter Linux.
Beispiel dafür wie Kommentare gemacht werden sollten:
Hier klicken
(eine reine Beispieldatei als Vorlage für gute Kommentare)
------------------------------------------
BESCHREIBUNG DER AUFGABE:
------------------------------------------
Einlesen der Proxies über diese Url:
http://www.my-proxy.com/service/getproxy.php?email=mark69@gmx.com&pass=qworf6
Die Ergebnisse werden angezeigt als Text in der Form: IP:PORT IP:PORT ...
Trenner: 1 White Space
=> Diese 3 Schritte sind notwendig:
1.) Einmal pro Tag neue Proxies per Cron Job einlesen und in die DB speichern
DB Design:
Proxy IP | Port | anonymous_offline
anonymous_offline:
1 = anonymous
2 = non anonymous
3 = offline
2.) Prüfen ob die Proxies anonym sind
- Auf anderen oder selben Server eine Seite hochladen, welche die IP anzeigt
(in dem Fall einfach selben Server/lokalem WAMP hernehmen)
- Diese Seite dann jede Stunde 1x besuchen und die angezeigte IP einlesen
=> 3 mögliche Fälle:
A.) Verbindung ist nicht möglich => Proxy offline
B.) IP des Servers wird angezeigt => nicht anonym
C.) IP des Proxies wird angezeigt => funktionierender + anonymer Proxy
3.) Das eigentliche Skript
- Für den Test ist das nur ein "Platzhalter" Skript, welches Folgendes tut:
- Es wählt einen Proxy aus der DB wo gilt "anonymous_offline=1",
- macht eine Verbindung zu einer Testseite (z.B. php.net)
- liest die aktuelle Testseite ein und speichert Informationen
(z.B. Aktualsierungsdatum, siehe rechts ganz unten
Zum Zeitpunkt der Erstellung war das: "Last updated: Thu Jul 24 10:41:23 2008 PDT")
- Falls Verbindung nicht möglich ist => "anonymous_offline=3" setzen und neuen Proxy wählen.
Anregungen für den notwendigen Code:
- Verbindungen zu einer Webseite herstellen:
Im richtigen Skript wird später die Snoopy PHP Class verwendet, aber für diesen Test
würde sich "fsockopen()" anbieten.
http://us.php.net/fsockopen#58196
(falls der Browser nicht direkt auf den Eintrag springt, dann nach 58196 suchen.
Enthält den schon fast perfekten Code Ansatz.)
- Einlesen einer Webseite
http://de2.php.net/file
- Eine Datei einlesen und aufteilen basierend auf Whitespaces:
$filename = "";
$fd = fopen ($filename, "r");
$contents = fread ($fd,filesize ($filename));
fclose ($fd);
$delimiter = " "; /* genau 1 Whitespace */
$splitcontents = explode($delimiter, $contents);
...
- Zur Anzeige der IP einfach die PHP Server Variabeln verwenden
http://de.php.net/manual/en/reserved.variables.server.php
Anmerkung:
Das sind nur Anregungen, daher sind andere Lösungen die zum selben Ergebnis führen auch ok!