|
|||
|
Lasst die Hosen runter...
Ich hab mir mal überlegt was wir hier im Forum noch nicht hatten, was witzig und doch noch eine Bereicherung sein kann
![]() Da hab ich mir folgendes gedacht: Jemand stellt eine Aufgabe im Bereich Coding / Design legt den anderen diese vor - wer Interesse hat, sich mal dazu zu äussern oder gar gerade praktisch umzusetzen darf dies gerne tun. Damit entstehen Diskussionen, Anregungen und vieles mehr...hoffe, dass sich einige finden werden ![]() Hier nun mein erstes Problem: 1. Entwickle ein Programm, welche aus einem Logfile alle Client-IP-Adressen extrahiert und auf der Konsole ausgibt. Und zwar mit der Anzahl Hits (enspricht Anzahl Zeilen) pro IP-Adresse. 2. Das Programm ist als Konsolenapplikation zu implementieren, welches das zu analysierende File aus der Kommandozeile (erster Parameter) entnimmt. 3. Die Ausgabe soll absteigend sortiert nach Anzahl Hits erfolgen 4. Löse die IP-Adressen mittels DNS in Hostnamen auf. Hinweise zum Format: * Die Client-IP-Adresse befindet sich im Feld "c-ip" * Die Reihenfolge und Anzahl der Felder, welche geloggt werden, ist abhängig von der Konfiguration des Web Servers * Bei Neustart des Web Servers oder bei Änderungen der Einstellungen werden die Header in derselben Datei neu geschrieben. Anforderungen: * Die Performance der Applikation ist zu beachten, da Logfiles in der Praxis sehr gross werden können. Regeln: * Die Verwendung von externen Libraries und Tools, sowie von .NET-Libraries, welche nicht unter dem Namespace "System" angesiedelt sind, ist nicht erlaubt ich werde meinen Vorschlag in den nächsten Tagen posten
__________________
Administrator - sWiZz-eL!Te love 1s *!(not= atoi(let |
|
|||
|
ja das ist durchaus so, dass es aus Spass an der Sache gemacht wird. Für mich ist es interessant zu sehen wie andere die gleichen Probleme lösen, so evtl neue Ideen zu sammeln.
Ja ich habs einfach mal mit .NET ausprobiert, daher bin ich auf diese Einschränkungen gekommen. Natürlich ist die Sprache frei
__________________
Administrator - sWiZz-eL!Te love 1s *!(not= atoi(let |
|
||||
|
hier mal mein loesungs-vorschlag. habs sehr einfach gehalten (keine ausnahme behandlung, etc.). wie man sieht, bin ich nur ein gelegenheits "Perler" ;-)
performance seitig koennte man fuer riesige logs z.b. anstatt "line by line" chunks einlesen. "Socket" ist Zitat:
PHP-Code:
__________________
"Text messaging being a modern technology that allows average people to display their functional illiteracy in a much more compact format." Geändert von hellcat (09.08.2007 um 08:42 Uhr) |
|
||||
|
P.s. benutze Perl v5.8.7, aber das ding is soooo basic, das sollte unter fast jeder version laufen...
__________________
"Text messaging being a modern technology that allows average people to display their functional illiteracy in a much more compact format." |
|
||||
|
na kommt schon leute - dauert ja nicht alle welt so ein proggi zu schreiben...waere noch schoen wenn jemand mit ner Java version aufkreuzen koennte.
__________________
"Text messaging being a modern technology that allows average people to display their functional illiteracy in a much more compact format." |
|
|||
|
soo hab mir mal dein code zu Gemüte geführt.
Ich oute mich hier als nicht perler..Aber ist es nicht langsam, wenn du die Ips in ein Array schreibst und danach das Array sortierts? Hier mein Vorschlag - leider ohne Codesample. Ich würde es auch über ein Array lösen, und erst bei der Ausgabe die Hosts auflösen. Allerdings bin ich überzeugt, dass Arrays für diese Aufgabe nicht geeignet sind - weil es einfach zu langsam sein wird. Alternative: Auflistungen als Alternative zu Arrays Aber da habe ich keine Erfahrung... ich werde da wohl mal ein Vergleich programmieren, allerdings habe ich Moment gerade wenig Zeit. Wird sicherlich September!
__________________
Administrator - sWiZz-eL!Te love 1s *!(not= atoi(let |
|
||||
|
Zitat:
aber mit "my $lookup = 0" kannst du die performance ohne lookup testen -> und ich schaeue mich nicht vor einem wettbewerb, hehe. (der "ReDim" performance issue scheint doch sehr sprach-abhaengig zu sein)
__________________
"Text messaging being a modern technology that allows average people to display their functional illiteracy in a much more compact format." Geändert von hellcat (16.08.2007 um 11:54 Uhr) |
![]() |
| Themen-Optionen | |
| Ansicht | |
|
|