Guten Tag,
Ich habe ein 2d Array show[][], dass aus dem Apache Server Log generiert wurde.
Das Feld show[][0] enthält ip-adressen die eine Anfrage an das Server geschieckt haben.
Das Feld show[][2] enthält Status-index zmb. 403 für unberechtigte Anfrage usw.
Ich muss die ip-adressen mit dem Status 4** aussortieren und die Anzahl von solchen Anfragen zusammenzählen.
Danach muss ich die sortierte Daten am besten in ein neues Array speichern für die Visualisation.
Mein Versuch:
Danke für jede Hilfe.
Ich habe ein 2d Array show[][], dass aus dem Apache Server Log generiert wurde.
Das Feld show[][0] enthält ip-adressen die eine Anfrage an das Server geschieckt haben.
Das Feld show[][2] enthält Status-index zmb. 403 für unberechtigte Anfrage usw.
Ich muss die ip-adressen mit dem Status 4** aussortieren und die Anzahl von solchen Anfragen zusammenzählen.
Danach muss ich die sortierte Daten am besten in ein neues Array speichern für die Visualisation.
Mein Versuch:
Java:
String [][]show=scanFile("/home/user/Schreibtisch/loagApache.txt");
String[]ipAr=new String[show.length];//neues Array für ip-adressen umd daraus eine Liste zu basteln..
// evtl. könnte man das Feld show[][0] direkt zu einer Liste wandeln ,
//leider bin noch nicht dazu gekommen.
for(int i=0;i<show.length;i++) {
ipAr[i]=show[i][0]; //Übertragen alle ip`s in das neue Array
}
List<String>ip=Arrays.asList(ipAr);
/**** Beim result Aufbau brauche ich nur die ip`s die 4** Statuscode haben,jetzt habe ich alle ***/
Map<String,Long> result=ip.stream().
collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
//Hier werden alle Anfragen gezählt und zusammen mit ip`s zu einer Map hinzugefügt.
for(String key : result.keySet())
{
System.out.print("Key: " + key + " - ");
System.out.print("Value: " + result.get(key) + "\n"); //Ausgabe von der Map.
}
Ausgabe -> Key: 195.140.123.181 - Value: 69
....usw.
Danke für jede Hilfe.