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

Réseau/Web Python Discussion :

Probleme avec la récupération de REMOTE_ADDR


Sujet :

Réseau/Web Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2013
    Messages : 27
    Points : 0
    Points
    0
    Par défaut Probleme avec la récupération de REMOTE_ADDR
    Bonjour à tous,

    j'ai un petit souci, je met dans mon script.py :

    contenu = string.Template(template).substitute(

    add = cgi.escape(os.environ["REMOTE_ADDR"])
    )

    Puis dans scriptEnvoi.py , dans mon formulaire html dans action je met ${add}

    et j'ai cette erreur :

    File "./scriptInfo.py", line 47, in <module>
    main(add, name)
    File "./scriptInfo.py", line 22, in main
    add = cgi.escape(os.environ["REMOTE_ADDR"])
    File "/usr/lib/python2.6/UserDict.py", line 22, in __getitem__
    raise KeyError(key)
    KeyError: 'REMOTE_ADDR'


  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    vous avez un bouton '#' en haut à droite de votre éditeur de messages pour insérer du code.

    Merci.

    @+.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Bonjour,
    À tout hasard, que vaut "REMOTE_ADDR" juste avant l'appel?

    Maintenant,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    contenu = string.Template(template).substitute(
     
    add = cgi.escape(os.environ["REMOTE_ADDR"])
    )
    Semble vraiment très très étrange! Les paramètres de la méthode "substitute" ne semblent pas coller du tout!!
    Et l'erreur ne parait pas complète, si?
    Clodion

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2013
    Messages : 27
    Points : 0
    Points
    0
    Par défaut
    REMOTE_ADDR ne vaut rien avant ( je ne comprends pas ta question ).

    -> J'essaie de récupérer l'addresse IP avec cette variable d'environnement.

    mais lorsque j'execute mon script ( j'execute mon script en ligne de commande avec les paramètres qu'il y a entre parenthèse), j'obtient ce message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Traceback (most recent call last):
      File "./scriptInfo.py", line 51, in <module>
        main(add, name) 
      File "./scriptInfo.py", line 26, in main
        server_IP = cgi.escape(os.environ["REMOTE_ADDR"])
      File "/usr/lib/python2.6/UserDict.py", line 22, in __getitem__
        raise KeyError(key)
    KeyError: 'REMOTE_ADDR'
    dans le substitute j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    contenu = string.Template(template).substitute(
     
    name = name
    add = cgi.escape(os.environ["REMOTE_ADDR"])
    )

  5. #5
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par luffy_m Voir le message
    REMOTE_ADDR ne vaut rien avant ( je ne comprends pas ta question ).

    -> J'essaie de récupérer l'addresse IP avec cette variable d'environnement.

    mais lorsque j'execute mon script ( j'execute mon script en ligne de commande avec les paramètres qu'il y a entre parenthèse), j'obtient ce message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Traceback (most recent call last):
      File "./scriptInfo.py", line 51, in <module>
        main(server_IP, code_name, code_version, install_path) 
      File "./scriptInfo.py", line 26, in main
        server_IP = cgi.escape(os.environ["REMOTE_ADDR"])
      File "/usr/lib/python2.6/UserDict.py", line 22, in __getitem__
        raise KeyError(key)
    KeyError: 'REMOTE_ADDR'
    Bonjour,
    Bien penser à mettre les balises "code" signalées par "#" en haut au milieu de la fenêtre d'édition (ainsi que le demandait tarball69 afin qu'il soit possible de comprendre exactement ce qui est fait)!!

    Sinon,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> import os
    >>> os.environ["n'importe quoi"]
    Traceback (most recent call last):
      File "/usr/lib/python3.4/idlelib/PyShell.py", line 766, in runcode
        exec(code, self.locals)
      File "<pyshell#1>", line 1, in <module>
      File "/usr/lib/python3.4/os.py", line 631, in __getitem__
        raise KeyError(key) from None
    KeyError: "n'importe quoi"
    >>>
    Tout cela pour dire que écrire os.environ[clef] provoque une erreur si "clef" n'existe pas.
    Et que c'est ce que semble indiquer le message d'erreur!!

    Clodion

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2013
    Messages : 27
    Points : 0
    Points
    0
    Par défaut
    j'utilise bien le '#' pour mon code , non ?

    Le souci c'est que REMOTE_ADDR est une variable d'environnement, son but est de récupérer l'adresse IP du client.
    Ainsi, si je fais dans un même script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ip = cgi.escape(os.environ["REMOTE_ADDR"])
    et que plus bas je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print "L'adresse ip est : ", ip
    j'arrive à récupérer l'adresse IP en question, mais dans mon cas je souhaite récupérer cette variable dans un autre fichier, qui plus est dans une URL

  7. #7
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par luffy_m Voir le message
    j'utilise bien le '#' pour mon code , non ?

    Le souci c'est que REMOTE_ADDR est une variable d'environnement, son but est de récupérer l'adresse IP du client.
    Ainsi, si je fais dans un même script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ip = cgi.escape(os.environ["REMOTE_ADDR"])
    et que plus bas je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print "L'adresse ip est : ", ip
    Bonjour,
    Oui, désolé, j'étais resté bloqué sur le premier post!
    Et lors de l'appel, est-il certain que la variable d'environnement "REMOTE_ADDR" existe bien?
    i.e. : dans le fichier, pourquoi ne pas essayer d'afficher cette variable avant l'instruction proprement dite (mais dans le fichier!!)?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.environ["REMOTE_ADDR"]
    Au moins afin d'être certain que ce n'est pas là le problème.
    Sinon, je ne vois qu'un problème de paramètres (name [en tant que mot clef et name en tant que variable] et add).

    Clodion

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    En supposant que vous utilisez Django, j'ai fait une recherche https://www.google.fr/?gws_rd=ssl#q=django+remote_addr

    Et j'ai trouvé ça :

    http://www.pressthered.com/how_to_ge...ess_in_django/

    https://docs.djangoproject.com/en/de...tpRequest.META

    Il y a sûrement de quoi piocher là-dedans.

    @+.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2013
    Messages : 27
    Points : 0
    Points
    0
    Par défaut
    Quand je fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print os.environ["REMOTE_ADDR"]
    J'ai cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Traceback (most recent call last):
      File "./scriptInfo.py", line 9, in <module>
        print os.environ["REMOTE_ADDR"]
      File "/usr/lib/python2.6/UserDict.py", line 22, in __getitem__
        raise KeyError(key)
    KeyError: 'REMOTE_ADDR'
    les variables add et name elles ont rien avoir, je les récupérer en ligne de commande en executant mon script ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ./scriptInfo.py add name
    Cela m'ouvre mon webbrowser ( bien sur je n'ai mis qu'une partie du code ) puis m'affiche les données que j'ai en paramètre , à savoir : add et name

  10. #10
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par luffy_m Voir le message
    Quand je fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print os.environ["REMOTE_ADDR"]
    J'ai cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Traceback (most recent call last):
      File "./scriptInfo.py", line 9, in <module>
        print os.environ["REMOTE_ADDR"]
      File "/usr/lib/python2.6/UserDict.py", line 22, in __getitem__
        raise KeyError(key)
    KeyError: 'REMOTE_ADDR'
    les variables add et name elles ont rien avoir, je les récupérer en ligne de commande en executant mon script ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ./scriptInfo.py add name
    Cela m'ouvre mon webbrowser ( bien sur je n'ai mis qu'une partie du code ) puis m'affiche les données que j'ai en paramètre , à savoir : add et name
    Bonjour,
    Donc…
    Retour au message 3… Donc il y a un problème dans l'initialisation de la connexion!!

    Clodion

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2013
    Messages : 27
    Points : 0
    Points
    0
    Par défaut
    Mais les paramètres dans le substitue ont rien à voir , enfin je ne vois pas de quoi tu parles , je suis vraiment perdu pour le coup

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/02/2010, 08h35
  2. Probleme avec la récupération d'une structure d'une dll
    Par onaipadesmickey dans le forum MFC
    Réponses: 1
    Dernier message: 26/02/2008, 18h32
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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