Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme variable

Bug avec une variable sur un programme scapy

Sujet résolu
    8 novembre 2017 à 23:44:42

    Bonjour/Bonsoir/Bonne après-midi à toutes et a tous ! (je prevois tout les cas haha)

    Je fais un ptit programme python ajoutant scapy (forgeur de paquet) j'ai le programe suivant :

    #!/usr/bin/python2.7
     
    from scapy.all import *
     
    macs = input("Entrez l'adresse MAC :")
     
    print(macs)
     
    ips = input("Entrez l'adresse IP : ")
     
    print(ips)
    matrame = ARP()
    matrame.op = 'is-at'
    matrame.psrc = '192.168.0.254'
    matrame.hwdst = 'macsniff'
    matrame.pdst = 'ipsniff'
    matrame.show()
     
    a = 2
     
    while a > 1:
            sendp(matrame)

    et le terminale me retourne :

    Traceback (most recent call last):
      File "./pythonTest.py", line 5, in <module>
        macs = input("Entrez l'adresse MAC :")
      File "<string>", line 1
        00:24:d4:aa:4e:b7
          ^
    SyntaxError: invalid syntax

    La variable macs doit contenir une adresse MAC il y a donc des chiffres, des lettres et des caractères spéciaux (les ":") et l'interpreteur n'a pas l'air d'aimer ca ! Que faire ?


    • Partager sur Facebook
    • Partager sur Twitter

    Prépa PCSI

    Anonyme
      9 novembre 2017 à 0:07:42

      2 choix, l'un est meilleure que l'autre:

       (l'un) Passer à Python 3 !

       (l'autre) utiliser la fonction raw_input, car en Python 2 la fonction input évalue les entrées comme si c'était du code Python.

      Non vraiment, passe à Python 3, il ne reste plus longtemps avant que Python 2 soit enfin abandonné par la PSF.

      • Partager sur Facebook
      • Partager sur Twitter
        14 novembre 2017 à 23:11:29

        Ok merci bcp ! je possède python 2 (2.7) ainsi que python 3 (3.6) cependant j'utilise la bibliothèque scapy qui ne marche que en python 2 ;) 

        J'utilise la fonction raw_input de la meme manière que input ?

        Je n"ai pas tres bien compris ton explication par rapport au fait que input lise les entrée comme si c'était du code ? Cela veut dire qu'il prend mes ":" comme le debut d'une condition ou d'une boucle par exemple ?

        -
        Edité par alexEV 14 novembre 2017 à 23:21:00

        • Partager sur Facebook
        • Partager sur Twitter

        Prépa PCSI

        Anonyme
          15 novembre 2017 à 0:45:10

          Un fork de Scapy existe pour Python 3 : https://github.com/phaethon/scapy
          Il s'installe simplement : py -3 -m pip install scapy-python3

          Pour l'histoire de la fonction input() sous Python 2 (ou eval(input()) sous Python 3), non tu ne peux pas saisir des blocs d'instructions, seulement des expressions (sur une seule ligne).

          Avec Python 2:

          • Récupérer une saisie : raw_input()
          • Evaluer une saisie : input()

          Avec Python 3:

          • Récupérer une saisie : input()
          • Evaluer une saisie : eval(input())

          -
          Edité par Anonyme 15 novembre 2017 à 0:49:52

          • Partager sur Facebook
          • Partager sur Twitter

          Probleme variable

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown