Bonsoir,
Pourriez vous m'aider s'il vous plait, Quelle est l’expression régulière en python de ces réglés (phrases) ?
rule = ' alert tcp 10.0.02 any -> 10.0.0.1 80 '
rule = ' log tcp 10.0.02 any -> 10.0.0.1 21 '
Je vous remercie d'avance
Bonsoir,
Pourriez vous m'aider s'il vous plait, Quelle est l’expression régulière en python de ces réglés (phrases) ?
rule = ' alert tcp 10.0.02 any -> 10.0.0.1 80 '
rule = ' log tcp 10.0.02 any -> 10.0.0.1 21 '
Je vous remercie d'avance
Ce n'est jamais une bonne façon de poser une question.c'est urgent aidez moi SVP
Salut,
Bienvenue dans le forum Python.
Ta question est donc:
Hélas, un réglé ne fait pas partie du jargon Python.Quelle est l’expression régulière en python de ces réglés (phrases) ?
rule = ' alert tcp 10.0.02 any -> 10.0.0.1 80 '
rule = ' log tcp 10.0.02 any -> 10.0.0.1 21 '
Que veux-tu faire, d'où sortent ces deux lignes de code ?
je me suis trompé désolé,je voulais dire ces règles et pour votre question je veux ouvrir un fichier.txt avec ex : alerts = open("signature.txt", "r") et ce fichier contient des régles je veux les analysées (ce sont des régles pour un ids intrusion detection system)
le fichier signature.txt contient des régles (C'est du texte) , Il faut pouvoir les lire et les décoder avec Python c'est çà le problème et c pour cela j'ai pensé a les expression régulières !
salut,
je pense qu'une bonne recherche te donnera des résultats plus probants
Merci a vous ! j'ai fait cette recherche et j'ai pas trouvé l’objectif recherché
Pourtant, il y a un exemple taillé sur mesure pour toi:
https://www.snip2code.com/Snippet/80...to-Python-Dict
Bonjour, je travail sur cet exemple et c'est pour ça je cherche l'expression régulière de cette ligne rule = 'alert tcp 10.0.0.1 any -> 10.0.0.2 80 ' car j'ai modifie l'exemple
Merci bcp pour votre aide
Dans le code qui vous a été signalé par VinsS, l'expression régulière est r'(^.+)\((.+)\).
Le développeur considère qu'une ligne est de la forme "HEADER ( OPTIONS )".
L'expression régulière sert à récupérer HEADER et OPTIONS traitées ensuite à coups de simples "split".
Et au final çà retourne un dictionnaire sur lequel on peut travailler.
Ce n'est peut être pas ce que vous vouliez mais avez vous formulé autre chose?
- W
Oui, je veux prendre que la partie header
d’après la réponse de @BufferBob la réponse sera normalement : res = re.search(r' (^.*$)', line)
c'est quoi le header dans la ligne rule = 'alert tcp 10.0.0.1 any -> 10.0.0.2 80 ' ?
alert tcp 10.0.0.1 any -> 10.0.0.2 80
je te propose celle-ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 res = re.search('^rule\s*=\s*[\'\"](.+?)\s*[\'\"]\s*$', line) header = res.group(1)
Et moi celle-ci...
- W
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 >>> line = "rule = alert tcp 10.0.0.1 any -> 10.0.0.2 80" >>> line.split(' = ')[1] "alert tcp 10.0.0.1 any -> 10.0.0.2 80" >>>
je vous remercie infiniment,
et concernant ce que je suis entrain de faire est d'implémenter un IDS dans l'environnement SDN sous Mininet et avec OpenFlow et POX contrôleur et mon programme ouvre un fichier.txt contient les signatures de SNORT (des régles) et apres l'ouverture, voire la correspondance avec les packets entrants et les signatures si c'est oui il affiche un msg d'alert et génére un fichier log ( outFile) la ou je stocke les informations sur les paquets suspects (détectés par l'DS) comme l'heure, l'entête du paquets, etc.
pourriez vous me voir mon script et me dire ou est le problème SVP , (je vous ai expliqué ce que je suis entraine de faire)
Code : 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 import os import sys import re def readFile(): # read txt file # FILE CONTIENT: #rule = ' alert tcp 10.0.0.2 any -> 10.0.0.1 80 ' #rule = ' log tcp 10.0.0.2 any -> 10.0.0.1 21 signature = raw_input('Enter the name of the txt file please :')+'.txt'# Name of text file coerced with +.txt try: alerts = open("signature.txt", "r") #print(signature.txt ,alerts) except: print "Le fichier", signature, "est introuvable" if type(lines) != list: res = re.search('^rule\s*=\s*[\'\"](.+?)\s*[\'\"]\s*$', line) #make dictionnary header = res.group(1) #Traiter lentete en divisant lespace headers = header.split() print("headers") rule = { 'actions':headers[0], 'protocol':headers[1], 'nw_src':headers[2], 'in_port':headers[3], 'direction':headers[4], 'nw_dst':headers[5], 'out_port':headers[6], } #je veux voir la coresspondance entre les packets entrants et les signatures dans le fichier.txt, je sais pas si c juste ou pas ! for line in alerts.lines : f = rule.match(line) if f.match.headers[0]==alert and f.match.headers[1]== Ethp("tcp ")and f.match.f.match.headers[2]==IPAddr("10.0.0.2") and f.match.headers[3]=='any' and f.match.headers[5]==IPAddr("10.0.0.1")and f.match.headers[6]==80 : print ('Verifier votre fichier log pour voir la detection ') alerts.close() with open ("detection.log","a") as a : # il faut ecrire dans le fichier.log: @ip et le numero de port source et lheure par exemple mais je sais pas comment afficher l'heure de la detection a.write(" comment afficher l'heure et l'adresse détecté ici ???? ") a.close() readFile()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager