bien que le fichier csv et le script soient dans le même fichier j'ai de la misère
Code Powershell : 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
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 l’existence d’un 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")