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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| # Chemin du fichier trace.csv
$filePath = "C:\examen\trace.csv"
# Fonction pour extraire les adresses IP uniques à partir du fichier trace.csv
function Extract-UniqueIPAddresses {
$csvData = Import-Csv $filePath
$ipAddresses = $csvData | Where-Object { $_.Info -match "\[SYN\]" } | Select-Object -ExpandProperty "Source IP" -Unique
$ipAddresses
}
# Fonction pour extraire les adresses IP uniques en réponse à une connexion TCP
function Extract-UniqueResponseIPAddresses {
$csvData = Import-Csv $filePath
$ipAddresses = $csvData | Where-Object { $_.Info -match "\[SYN, ACK\]" } | Select-Object -ExpandProperty "Destination IP" -Unique
$ipAddresses
}
# Fonction pour extraire les protocoles uniques du fichier trace.csv
function Extract-UniqueProtocols {
$csvData = Import-Csv $filePath
$protocols = $csvData | Select-Object -ExpandProperty "Protocol" -Unique
$protocols
}
# Afficher le menu et demander le choix de l'utilisateur
do {
Clear-Host
Write-Host "A) extraction des demandes SYN"
Write-Host "B) extraction des réponses des SYN"
Write-Host "C) extraction des protocoles utilisés"
Write-Host "D) vérification de lexistence dun protocole particulier"
Write-Host "E) quitter"
$choice = Read-Host "Faites votre choix : "
switch ($choice) {
"A" {
$synAddresses = Extract-UniqueIPAddresses
Write-Host "Adresses IP ayant demandé une connexion TCP (SYN) :"
$synAddresses
Read-Host "Appuyez sur Entrée pour continuer..."
}
"B" {
$synAckAddresses = Extract-UniqueResponseIPAddresses
Write-Host "Adresses IP ayant répondu à une connexion TCP (SYN, ACK) :"
$synAckAddresses
Read-Host "Appuyez sur Entrée pour continuer..."
}
"C" {
$uniqueProtocols = Extract-UniqueProtocols
Write-Host "Protocoles utilisés dans le fichier trace.csv :"
$uniqueProtocols
Read-Host "Appuyez sur Entrée pour continuer..."
}
"D" {
$protocolToFind = Read-Host "Entrez le protocole à rechercher : "
$csvData = Import-Csv $filePath
$matchingRows = $csvData | Where-Object { $_."Protocol" -eq $protocolToFind }
if ($matchingRows) {
Write-Host "Lignes correspondantes pour le protocole '$protocolToFind' :"
$matchingRows
}
else {
Write-Host "Le protocole '$protocolToFind' n'existe pas dans le fichier."
}
Read-Host "Appuyez sur Entrée pour continuer..."
}
"E" {
Write-Host "Merci d'avoir utilisé notre analyseur. Bonne fin de session."
}
default {
Write-Host "Option non valide. Veuillez entrer une option valide (A, B, C, D ou E)."
Read-Host "Appuyez sur Entrée pour continuer..."
}
}
} while ($choice -ne "E") |
Partager