Hallo, hab da mal eine Frage.
Ich bin jetzt so weit das ich aus einer Proxy.log Datei von einem Bestimmten Tag die IP auslesen und aus dem dazugehörigem Datum und der Zeit den Zeitstempel gemacht habe.
Das hab ich schon in eine CSV geschrieben.
192.168.0.108 1420178703
192.168.0.112 1420178705
192.168.0.108 1420178706
192.168.0.112 1420178707
192.168.0.112 1420178708
192.168.0.108 1420178709
192.168.0.108 1420178718
192.168.0.108 1420178721
192.168.0.108 1420178724
192.168.0.108 1420178733
192.168.0.108 1420178736
192.168.0.108 1420178739
ich würde daraus aber gerne automatisch einen Hash erstellen lassen, wo die IP der Key ist und der Zeitstempel der Wert. Habe dazu nix gefunden. geht das überhaupt?
Hier mein bisheriger Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#! /usr/bin/perl
#use strict;
use warnings;
use Time::Local;
my $infile = "D:\\Privat\\PERL Projekt\\access.log.proxy";
my $outfile = "D:\\Privat\\PERL Projekt\\auswertung.csv";
my ($ip,$date,$time);
my ($d, $mon, $yy, $h, $min, $sek) = 0;
my $sektime = 0;
my $gestern;
print ("Bitte Datum von Gestern eingeben");
print ("Beispiel: 02/Nov/2015\n");
chomp ($gestern=<STDIN>);
open (READLOG, "<$infile") or die ("Datei $infile nicht gefunden.\n\n");
open (WRITE, ">$outfile") or die ("Datei $outfile konnte nicht erstellt werden.\n\n");
while (<READLOG>){
if ($_=~m/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}[^\[\]]+\[\d{2}\/[a-zA-z]{3}\/\d{4}:\d{2}:\d{2}:\d{2}\s[\+|\-]\d{4}\]/)
{
($ip,$date,$time) = m/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})[^\[\]]+\[(\d{2}\/[a-zA-z]{3}\/\d{4})\:(\d{2}:\d{2}:\d{2})\s[\+|\-]\d{4}\]/;
if ($date eq $gestern) {
($d, $mon, $yy) = split( "/", $date );
($h, $min, $sek) = split( ":", $time );
$sektime = timelocal ($sek,$min,$h,$d,$mon,$yy);
print ("$ip;$sektime\n");
print WRITE ("$ip"." "."$sektime"."\n");
}
}
}
close (WRITE);
close(READLOG);
Last edited: 2015-11-10 12:05:23 +0100 (CET)