Bonjour,

Voici le type de fichier que je dois traiter :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
No.     Time           Protocol Source                Destination           Port_S Port_D Lenght Info
  10411 90.451620000   ESP      80.214.48.4           141.6.18.116          dsom-server ndmp   178    ESP (SPI=0x75ffc42c)
  10412 90.451627000   ESP      80.214.48.4           141.6.18.116          dsom-server ndmp   178    [TCP Out-Of-Order] ESP (SPI=0x75ffc42c)
  10413 90.452197000   ESP      80.214.48.4           141.6.18.116          dsom-server ndmp   178    ESP (SPI=0x75ffc42c)
  10414 90.452204000   ESP      80.214.48.4           141.6.18.116          dsom-server ndmp   178    [TCP Out-Of-Order] ESP (SPI=0x75ffc42c)
  10417 90.491923000   ESP      80.214.48.4           141.6.18.116          dsom-server ndmp   178    ESP (SPI=0x75ffc42c)
........
1160895 9951.461182000 ISAKMP   80.214.48.4           141.6.18.116          isakmp isakmp 162    Informational
1160896 9951.461188000 ISAKMP   80.214.48.4           141.6.18.116          isakmp isakmp 162    [TCP Out-Of-Order] Informational
1173065 10110.296662000 ESP      80.214.48.4           141.6.18.116          dsom-server ndmp   178    ESP (SPI=0x26692842)
1173066 10110.296668000 ESP      80.214.48.4           141.6.18.116          dsom-server ndmp   178    [TCP Out-Of-Order] ESP (SPI=0x26692842)
1173067 10110.316924000 ESP      80.214.48.4           141.6.18.116          dsom-server ndmp   178    ESP (SPI=0x26692842)
En fait mon gros soucis est que je traite ligne par ligne en faisant des scanf %s pour prendre partie par partie. Le problème vient lorsque le protocol contient un espace car ça décale tout d'un cran ....

Ma 1ere idée était de compter les largeurs des premières colonnes en parcourant la 1ere ligne et en repérant le T, le P et le S. Ca marche bien et dans l'intervalle je change les espaces en '.' mais à partir d'un certain moment, le time dépasse les 10 000 et ça décale d'un cran mais je ne sais pas si c'est systématique ou si c'est du à la configuration de wireshark au moment de l'export ....

Bref je comptais ensuite parcourir chaque ligne et repérer la colonne protocol en faisant des tests sur les caractères à gauche et à droite ( time et source ) qui sont des nombres. Mais le problème est que certain protocols contiennent des nombres ...

Est-ce que quelqu'un aurait une idée pour isoler efficacement une colonne svp ?

Merci