cs_sweetyrahma
Messages postés6Date d'inscriptionlundi 15 décembre 2008StatutMembreDernière intervention 7 septembre 2009
-
1 sept. 2009 à 12:52
cs_sweetyrahma
Messages postés6Date d'inscriptionlundi 15 décembre 2008StatutMembreDernière intervention 7 septembre 2009
-
7 sept. 2009 à 09:30
bonjour svp c urgent jai besoin de vos aide , je travaille un project en VBS , il s'agit de traiter un fichier log qui contient des évenements(erreurs) voici une ligne du fichier log
[Sat Nov 01 07:45:27 2008] [alert] [RS_ERROR][196.203.24.2][][2981880900][5][REQUEST NOT FORWARDED] GET /j2ee/<js/ctrl_cpte.js HTTP/1.1
apres parcourir le fichier ligne par ligne et afficher les addresses IP que j'ai reussi a les faire je dois recuperer les addresses IP dans un tableau selon le taux d'apparence de chaque addresse (nombre) ainsi affichier des statistiques en graphe par exemple chaque l'apparition de chaque addresse ip en pourcentage car cela implique le taux d'erreur par addresse IP ... merci de m'aider je suis debutante et c'est un project urgent.....
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 1 sept. 2009 à 18:49
Bonjour,
Exemple, avec l'objet Dictionary, pour afficher le nbre d'IP.
Il suffit de rajouter des tests si toutes les lignes du log n'ont pas
la même structure. A rajouter le tri du dictionnaire pour le décompte (voir snippets). Voir aussi RegExp.
Option Explicit
Const ForReading = 1
Dim objFso, objFile
Dim objDico, objDicoKeys, objDicoItems
Dim strFicTxt, strIP, i, result
strFicTxt = "F:\log_IP.log"
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.OpenTextFile(strFicTxt, ForReading)
Set objDico = CreateObject("Scripting.Dictionary")
Do Until objFile.AtEndOfStream
strIP = Split(objFile.ReadLine,"]")
strIP(3) = Replace(strIP(3),"[","")
If objDico.Exists(strIP(3)) Then
objDico.Item(strIP(3)) = objDico.Item(strIP(3))+1
Else
objDico.Add strIP(3), 1
End If
Loop
objFile.Close
objDicoKeys = objDico.Keys
objDicoItems = objDico.Items
For i = 0 To objDico.Count-1
result = result & "IP: " & objDicoKeys(i) & vbTab & _
"nbre alerte: " & objDicoItems(i) & vbCr
Next
MsgBox result
cs_sweetyrahma
Messages postés6Date d'inscriptionlundi 15 décembre 2008StatutMembreDernière intervention 7 septembre 2009 7 sept. 2009 à 09:30
bonjour merci jean pour la réponce mais je sais pas ou est le pblm jai pas pu exécuter ce code ilya une erreur que lindice (3) est dehors de la plage pouvez vous m'aidez svp????? je veux tester ce code