Bonjour le forum;
Je me permets de vous exposer mon problème :
Je voudrais extraire les adresses ip contenues dans un fichier log.
La démarche que j'effectue :
1- Ouverture en lecture du fichier de log : OK
2- Ouverture en écriture d'un fichier texte pour insérer le contenu du fichier log : OK
3- Insertion du contenu du fichier log vers fichier texte : OK
4- Tentative d'extraction des ip contenues dans le fichier texte fraîchement créé : Bloqué à cette étape.
(Alors j'imagine que l'idéal est d'extraire les ip lors de l'écriture des données du fichier log vers dans le fichier texte, mais je bloque quoi qu'il arrive)
J'ai consulté ce fil qui me semble se rapprocher de ce que je souhaite faire : http://www.developpez.net/forums/d99...d-fichier-txt/
Je pense avoir une expression rationnelle qui pourrait fonctionner, mais je vois pas comment l'adapter à mon besoin :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #!/usr/bin/perl use strict; use warnings; use autodie; open (my $Source,'<','/var/log/authlog'); open (my $Cible,'>','reportlog.txt'); while (my $donnee = <$Source>) { print $Cible $donnee; } close ($Cible); close ($Source);
Un extrait de la structure du fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #!/usr/bin/perl use strict; use warning; my $ip = "45.114.11.41"; if ($ip =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/) { print ("Expression trouvee\n"); } else { print ("Pas de correspondance\n"); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
40
41
42
43 Jul 23 15:33:50 serveurBSD sshd[17490]: Received disconnect from 45.114.11.41: 11: [preauth] Jul 23 15:33:50 serveurBSD sshd[17490]: Disconnected from 45.114.11.41 [preauth] Jul 23 15:33:52 serveurBSD sshd[6699]: Received disconnect from 45.114.11.41: 11: [preauth] Jul 23 15:33:52 serveurBSD sshd[6699]: Disconnected from 45.114.11.41 [preauth] Jul 23 15:33:55 serveurBSD sshd[31212]: Received disconnect from 45.114.11.41: 11: [preauth] Jul 23 15:33:55 serveurBSD sshd[31212]: Disconnected from 45.114.11.41 [preauth] Jul 23 15:33:57 serveurBSD sshd[5357]: Received disconnect from 45.114.11.41: 11: [preauth] Jul 23 15:33:57 serveurBSD sshd[5357]: Disconnected from 45.114.11.41 [preauth] Jul 23 15:34:00 serveurBSD sshd[19922]: Received disconnect from 45.114.11.41: 11: [preauth] Jul 23 15:34:00 serveurBSD sshd[19922]: Disconnected from 45.114.11.41 [preauth] Jul 23 15:34:02 serveurBSD sshd[16503]: Received disconnect from 45.114.11.41: 11: [preauth] Jul 23 15:34:02 serveurBSD sshd[16503]: Disconnected from 45.114.11.41 [preauth] Jul 23 15:34:04 serveurBSD sshd[1161]: Received disconnect from 45.114.11.41: 11: [preauth] Jul 23 15:34:04 serveurBSD sshd[1161]: Disconnected from 45.114.11.41 [preauth] Jul 23 15:34:07 serveurBSD sshd[21849]: Received disconnect from 45.114.11.41: 11: [preauth] Jul 23 15:34:07 serveurBSD sshd[21849]: Disconnected from 45.114.11.41 [preauth] Jul 23 15:34:09 serveurBSD sshd[28054]: Received disconnect from 45.114.11.41: 11: [preauth] Jul 23 15:34:09 serveurBSD sshd[28054]: Disconnected from 45.114.11.41 [preauth] Jul 23 15:34:11 serveurBSD sshd[18638]: Received disconnect from 45.114.11.41: 11: [preauth] Jul 23 15:34:11 serveurBSD sshd[18638]: Disconnected from 45.114.11.41 [preauth] Jul 23 15:34:14 serveurBSD sshd[6985]: Received disconnect from 45.114.11.41: 11: [preauth] Jul 23 15:34:14 serveurBSD sshd[6985]: Disconnected from 45.114.11.41 [preauth] Jul 23 15:34:16 serveurBSD sshd[9618]: Received disconnect from 45.114.11.41: 11: [preauth] Jul 23 15:34:16 serveurBSD sshd[9618]: Disconnected from 45.114.11.41 [preauth] Jul 23 15:34:18 serveurBSD sshd[27040]: Received disconnect from 45.114.11.41: 11: [preauth] Jul 23 15:34:18 serveurBSD sshd[27040]: Disconnected from 45.114.11.41 [preauth] Jul 25 00:04:43 serveurBSD sshd[823]: Received disconnect from 218.87.111.117: 11: [preauth] Jul 25 00:04:43 serveurBSD sshd[823]: Disconnected from 218.87.111.117 [preauth] Jul 25 00:04:46 serveurBSD sshd[15115]: Received disconnect from 218.87.111.117: 11: [preauth] Jul 25 00:04:46 serveurBSD sshd[15115]: Disconnected from 218.87.111.117 [preauth] Jul 25 00:04:49 serveurBSD sshd[30059]: Received disconnect from 218.87.111.117: 11: [preauth] Jul 25 00:04:49 serveurBSD sshd[30059]: Disconnected from 218.87.111.117 [preauth] Jul 25 00:04:52 serveurBSD sshd[19220]: Received disconnect from 218.87.111.117: 11: [preauth] Jul 25 00:04:52 serveurBSD sshd[19220]: Disconnected from 218.87.111.117 [preauth] Jul 25 00:04:55 serveurBSD sshd[23319]: Received disconnect from 218.87.111.117: 11: [preauth] Jul 25 00:04:55 serveurBSD sshd[23319]: Disconnected from 218.87.111.117 [preauth] Jul 25 00:04:58 serveurBSD sshd[2404]: Received disconnect from 218.87.111.117: 11: [preauth] Jul 25 00:04:58 serveurBSD sshd[2404]: Disconnected from 218.87.111.117 [preauth] Jul 25 00:05:01 serveurBSD sshd[11843]: Received disconnect from 218.87.111.117: 11: [preauth] Jul 25 00:05:01 serveurBSD sshd[11843]: Disconnected from 218.87.111.117 [preauth] Jul 25 00:05:04 serveurBSD sshd[27758]: Received disconnect from 218.87.111.117: 11: [preauth]
Petite précision, l'accès ne se fait que par clef (donc j'imagine que ces tentatives sont vaines),et je sais qu'il existe des outils prêts à l'emploi (type ssh guard mesemble t-il).
Etant dans une démarche d'essayer d'apprendre Perl par l'exemple (aucune contrainte de temps, de productivité,etc..... c'est par pur plaisir !) et ce cas mesemble être une bonne opportunité de mettre en application le peu de connaissances que j'ai pour le moment.
J’espère avoir été clair et concis dans mes explications.
Merci par avance.
Cordialement.
Autodidacte.
Partager