IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

expressions régulières à appliquer.


Sujet :

Python

  1. #21
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Citation Envoyé par sarah sarita Voir le message
    des explications SVP ?!
    Que voulez vous que j'explique? NameError est un des messages d'erreur que tous ceux qui ont pris le temps d'apprendre à programmer avec Python ont rencontré et appris à corriger. A part vous recommander d'ouvrir un tuto et d'apprendre les bases que voulez vous que je dise? Si vous modifiez un code récupéré sur Internet, vous devez avoir un niveau équivalent à celui qui l'a écrit.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  2. #22
    Membre averti
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Par défaut
    voila l'erreur si je suis débutante en python mais j'ai un projet a faire, et je suis limité dans le temps
    voila l'erreur ds cette ligne : for line in alerts.lines :
    Images attachées Images attachées  

  3. #23
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Citation Envoyé par sarah sarita Voir le message
    voila l'erreur si je suis débutante en python mais j'ai un projet a faire, et je suis limité dans le temps
    Après NameError, on a IndentError...
    Si mes collègues on la patience de vous aider tant mieux pour vous...
    Personnellement, je ne vois pas pourquoi je passerais du temps à essayer de vous expliquer des notions que vous devriez avoir acquises par vous même avant de vous engager à coder un trucs avec des délais.... et avant même de poster dans le forum.
    Bon courage.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #24
    Membre averti
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Par défaut Question
    Bonjour,

    Ya t-il une expression réguliéres standard pour les deux règles suivantes ???
    rule = 'alert icmp 10.0.0.0/24 any -> 10.0.0.3 80'
    rule = 'log icmp 10.0.0.1 5600 -> 10.0.0.2 21'

    je vous remercie d'avance

  5. #25
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Salut,

    Citation Envoyé par sarah sarita Voir le message
    Ya t-il une expression réguliéres standard pour les deux règles suivantes ???
    rule = 'alert icmp 10.0.0.0/24 any -> 10.0.0.3 80'
    rule = 'log icmp 10.0.0.1 5600 -> 10.0.0.2 21'
    çà c'était la question posée au tout début et à laquelle différents intervenants ont déjà essayé de répondre (24 échanges, c'est quand même pas mal).
    Imaginons qu'une telle chose existe, elle se contenterait de fabriquer une liste de chaînes de caractères.
    Par exemple, "rule = 'alert icmp 10.0.0.0/24 any -> 10.0.0.3 80'" deviendrait [ 'alert', 'icmp', '10.0.0.0/24', 'any', '->', '10.0.0.3 80' ].
    Mais, si une telle chose n'existe pas, vous pourriez facilement fabriquer cette liste en utilisant des opérations simples sur les chaînes de caractères:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> s = "rule = 'alert icmp 10.0.0.0/24 any -> 10.0.0.3 80'"
    >>> s.split(' = ')[1][1:-1].split()
    ['alert', 'icmp', '10.0.0.0/24', 'any', '->', '10.0.0.3', '80']
    >>>
    Tout çà pour dire que si vous devez écrire le code qui:
    Citation Envoyé par sarah sarita
    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.
    décomposer vos règles en utilisant ou pas des expressions régulières est un détail...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #26
    Membre averti
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Par défaut
    Merci beaucoup , pourriez vous de me dire Qu'est-ce que signifier [1][1:-1] ?

  7. #27
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Citation Envoyé par sarah sarita Voir le message
    Merci beaucoup , pourriez vous de me dire Qu'est-ce que signifier [1][1:-1] ?
    [1] et [1:-1] ? C'est ainsi que Python permet de récupérer un élément dans une séquence et d'en extraire une sous-séquence. Pour les détails, vous devez ouvrir votre tuto. favori aux chapitres ad hoc car ce sont vraiment des bases qu'ils expliquent bien mieux que moi.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #28
    Membre averti
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Par défaut
    D'accord merci a vous

  9. #29
    Membre averti
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Par défaut
    Bonjour,

    SVP, je cherche l’expression régulière de cette règle : rule = 'alert udp 10.0.0.0/30 any -> 10.0.0.5 21 ' pour que je fasse ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     res= re.search('   expression régulière de la règle   ',line)
     if res:
           header = res1.split(' = ')[1][1:-1].split()

  10. #30
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Citation Envoyé par sarah sarita Voir le message
    Bonjour,

    SVP, je cherche l’expression régulière de cette règle : rule = 'alert udp 10.0.0.0/30 any -> 10.0.0.5 21 ' pour que je fasse ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     res= re.search('   expression régulière de la règle   ',line)
     if res:
           header = res1.split(' = ')[1][1:-1].split()
    Que contient "line" ?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #31
    Membre averti
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    myfile = open("signature.txt", "r")
     
              for line in myfile.readlines():

    line : c'est la ligne du fichier qui contient les règles

  12. #32
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Citation Envoyé par sarah sarita Voir le message
    line : c'est la ligne du fichier qui contient les règles
    Je ne vous demande pas ce que c'est mais ce qu'elle contient...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #33
    Membre averti
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Par défaut
    mon fichier contient : rule = 'alert tcp 10.0.0.1 any -> 10.0.0.3 80'
    rule = 'log icmp 10.0.0.1 any -> 10.0.0.2 80'
    rule = 'alert udp 10.0.0.1 any -> 10.0.0.2 21'
    rule = 'alert udp 10.0.0.0/30 any -> 10.0.0.4 21'
    rule = 'alert icmp 10.0.0.0/24 any -> 10.1.0.2 any'

  14. #34
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Citation Envoyé par sarah sarita Voir le message
    mon fichier contient : rule = 'alert tcp 10.0.0.1 any -> 10.0.0.3 80'
    rule = 'log icmp 10.0.0.1 any -> 10.0.0.2 80'
    rule = 'alert udp 10.0.0.1 any -> 10.0.0.2 21'
    rule = 'alert udp 10.0.0.0/30 any -> 10.0.0.4 21'
    rule = 'alert icmp 10.0.0.0/24 any -> 10.1.0.2 any'
    Pourquoi ne pas appliquer directement .split(' = ')[1][1:-1].split() à ces lignes?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  15. #35
    Membre averti
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Par défaut
    J'ai essayer ça, mais ça n'a pas marché :
    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
       myfile = open("signature.txt", "r")
     
              for line in myfile.readlines():
     
                headers = line.split(' = ')[1][1:-1].split()
                 #print(headers)
                rule = {
                    'action':headers[0],
                    'protocol':headers[1],
                    'srcaddresses':headers[2],
                    'srcports':headers[3],
                    'direction':headers[4],
                    'dstaddresses':headers[5],
                    'dstports':headers[6],
     
                        }
    et voici le type d'erreur : IndexError : list index out of range

  16. #36
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Et que contient headers dans ce cas?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  17. #37
    Membre averti
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Par défaut
    les éléments de la régle
    par exemple :
    headers[0] = alert
    headers[1] = tcp
    headers[2]= 10.0.0.1 ou bien 10.0.0.0/30 ça dépend la règle
    .
    .
    .
    headers[6]= any
    rule : 'est un dictionnaire

  18. #38
    Membre averti
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Par défaut
    et le resultat de print (headers )
    ça me donne une liste :
    ['alert','tcp','10.0.0.1','any','->','10.0.0.2','80']
    .....

  19. #39
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Citation Envoyé par sarah sarita Voir le message
    et le resultat de print (headers )
    ça me donne une liste :
    ['alert','tcp','10.0.0.1','any','->','10.0.0.2','80']
    .....
    Dans ce cas, la liste comprend bien 7 éléments et la construction du dictionnaire "rule" n'a aucune raison de planter avec un IndexError: soir vous ne montrez pas le code associé à l'erreur soit vous ne montrez pas le contenu d'header lorsque çà plante. Ce que vous pouvez vérifier par vous même avec la console Python:
    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
    >>> headers = ['alert','tcp','10.0.0.1','any','->','10.0.0.2','80']
    >>> len(headers)
    7
    >>> rule = {
    ...                 'action':headers[0],
    ...                 'protocol':headers[1],
    ...                 'srcaddresses':headers[2],
    ...                 'srcports':headers[3],
    ...                 'direction':headers[4],
    ...                 'dstaddresses':headers[5],
    ...                 'dstports':headers[6],
    ...
    ...                     }
    >>> rule
    {'direction': '->', 'srcaddresses': '10.0.0.1', 'dstports': '80', 'protocol': 'tcp', 'action': 'alert', 'dstaddresses': '10.0.0.2', 'srcports': 'any'}
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  20. #40
    Membre averti
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Par défaut
    regardez
    Nom : 2017-05-08_125957.jpg
Affichages : 118
Taille : 118,7 Ko

Discussions similaires

  1. [RegEx] Comment appliquer une condition à une expression régulière ?
    Par Maxiglider dans le forum Langage
    Réponses: 2
    Dernier message: 01/12/2015, 20h46
  2. Expression réguliére
    Par Mad_Max dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 16/09/2003, 18h17
  3. [expression régulière] mon cerveau fait des noeuds..
    Par nawac dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 27/05/2003, 10h06
  4. Expressions réguliéres
    Par Tooms dans le forum Langage
    Réponses: 4
    Dernier message: 06/12/2002, 18h42
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo