Traitement d'un fichier texte en c
Fermé
chedi baccari
Messages postés
1
Date d'inscription
samedi 3 mars 2012
Statut
Membre
Dernière intervention
3 mars 2012
-
3 mars 2012 à 15:23
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 - 4 mars 2012 à 18:29
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 - 4 mars 2012 à 18:29
A voir également:
- Traitement d'un fichier texte en c
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Fichier host - Guide
1 réponse
Hxyp
Messages postés
401
Date d'inscription
vendredi 28 janvier 2011
Statut
Membre
Dernière intervention
27 avril 2014
54
4 mars 2012 à 18:29
4 mars 2012 à 18:29
Bonjour,
Il vous est demandé d'extraire les adresses mac et ip de chaque ligne pour facilité la recherche. Une ligne est bien souvent séparée par le caractère nouvelle ligne \n (parfois avec le retour \r qu'il suffit d'ignorer).
Une ligne :
Créez simplement une fonction capable d'afficher la valeur de MAC et SRC à partir d'une chaîne (d'une ligne du fichier log) pouvez à la rigueur ajouter aussi le PROTO (protocole c'est pour les différencier; upd/tcp/icmp...) jetez un oeil là si nécessaire : http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml
Aidez vous des fonctions memcmp ou strncmp pour la recherche par comparaison. Trouvez le mot, exemple "MAC" si il est trouvé alors on affiche (ou on place dans un buffer) ce qui suit le caractère = et on stop lorsqu'on tombe sur un espace ou une tabulation \t (un caractère blanc).
testez dans le genre :
Il vous est demandé d'extraire les adresses mac et ip de chaque ligne pour facilité la recherche. Une ligne est bien souvent séparée par le caractère nouvelle ligne \n (parfois avec le retour \r qu'il suffit d'ignorer).
Une ligne :
Jul 26 06:25:16 minbar kernel: IN=eth0 OUT= MAC=01:00:5e:00:00:01:00:11:5d:45:84:00:08:00 SRC=141.142.234.1 DST=224.0.0.1 LEN=28 TOS=0x00 PREC=0xC0 TTL=1 ID=22423 PROTO=2
Créez simplement une fonction capable d'afficher la valeur de MAC et SRC à partir d'une chaîne (d'une ligne du fichier log) pouvez à la rigueur ajouter aussi le PROTO (protocole c'est pour les différencier; upd/tcp/icmp...) jetez un oeil là si nécessaire : http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml
Aidez vous des fonctions memcmp ou strncmp pour la recherche par comparaison. Trouvez le mot, exemple "MAC" si il est trouvé alors on affiche (ou on place dans un buffer) ce qui suit le caractère = et on stop lorsqu'on tombe sur un espace ou une tabulation \t (un caractère blanc).
testez dans le genre :
void recherche(char *ligne,char *mot){ char *ptr; int i,n=strlen(mot); for(i=0;ligne[i];i++){ ptr=&ligne[i]; if(!strncmp(ptr,mot,n)) printf("mot !\n"); } }