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

Web Perl Discussion :

authentification http classique


Sujet :

Web Perl

  1. #1
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 18
    Par défaut authentification http classique
    Bonjour,

    je recherche une solution pour m'authentifier auprès d'un serveur au démarrage de mon ordi pour me connecter à internet.

    Je m'explique, pour surfer sur internet, je dois d'abord me rendre à une adresse http://10.x.x.x et ensuite m'authentifier (classique).

    Pour clarifier, voila la solution actuelle :
    J'ai mis mon browser dans le dossier démarrage de windows puis la page de démarrage est http://login:passwd@10.x.x.x

    Ca marche bien mais si la technique etait plus un truc du genre script qui se lance au démarrage ça me plairai plus.

    Donc vous avez compris que je voudrais faire simplement la meme chose avec perl mais je ne connais pas grand chose.

    J'ai cherché un peu et j'ai regardé les modules sur cpan mais il y a tellement de truc je suis un peu perdu. J'ai trouvé le module WWW::Authenticate mais apparement c'est pour une authentification via mysql...

    Si vous pouviez m'aiguiller ce serait très aimable de votre part.

    Merci d'avance


    kesiah

  2. #2
    Membre confirmé

    Inscrit en
    Janvier 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 188
    Par défaut
    ça ressemble à une simple authentification via du http, t'as pas trop cherché... y a deux topics récents là-dessus...
    package LWP::UserAgent (cf Here and Here )

  3. #3
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 18
    Par défaut
    Ah oui merci, en fait j'avais trouve quelques trucs dans le style mais pas sur le forum... Le truc que moi je pensait pas à un formulaire de page web mais à une authentification simple qui pourrait même se faire via des headers.

    D'ou l'adresse de type "http://login:passwd@10.x.x.x"

    Bon est ce que vous croyez qu'un truc du style...

    use LWP::Simple;

    $mydocument=get(http://login:passwd@10.x.x.x);

    ...fera l'affaire ?

    merci

  4. #4
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 18
    Par défaut
    Bon en fait ca ne fait pas l'affaire...

    Je ne connait pas très bien comment fonctionne le module (d'ailleurs j'y connais rien du tout en perl, c'est la première fois que j'y ai recours... ) mais ça ne marche pas tout le temps.

    Peut etre vous auriez une explication ou une autre solution.

    Vraiment je ne sais pas ce qui est effectue comme operations derriere donc je ne sais pas si cela correspond à mon probleme.

    Je rappelle : Je veux automatiser la procédure suivante.
    - connexion à l'adresse http://10.2.0.4
    - remplir les champs de la fenetre d'authentification avec login et passwd.

    je pensais qu'un simple get suffisait mais apparement pas. J'ai beau relancer le script plusieurs fois... rien n'y fait.

    Merci du soutien quand meme

  5. #5
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 18
    Par défaut
    merci

  6. #6
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Essaie ça :
    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
     
    #! /usr/bin/perl
    use strict;
    use warnings;
     
    package MyAgent;
    require LWP::UserAgent;
    our @ISA = qw/LWP::UserAgent/;
     
    sub get_basic_credentials {
        my ($self, $realm, $uri, $isproxy) = @_;
        if( $uri =~ /10\.2\.0\.4/ ) { 
            return "login", "password";
        }
        return;
    }
     
    package main;
     
    my $ua = MyAgent->new();
     
    my $res = $ua->get('http://10.2.0.4');
     
    print $res->content();
     
    __END__
    --
    Jedaï

  7. #7
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 18
    Par défaut
    merci beaucoup,

    je te dirai ce que ca donne.

    Sinon je me range sur wget (le soft).

    salut

  8. #8
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Si ça ne marche pas, essaie d'installer LWP::Authen::Ntlm, et réessaie (LWP::Authen::Ntlm sera utilisé automatiquement).

    --
    Jedaï

  9. #9
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 18
    Par défaut
    Le probleme qu'il me faut 1h d'inactivite internet pour avoir a me re authentifier donc je te dirai demain. A moins que je trouve une autre adresse libre et encore... pas sur que ca marche et j'ai pas envie de tester les quelques 250 qu'il me reste.

    merci c'est sympa

  10. #10
    Membre confirmé

    Inscrit en
    Janvier 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 188
    Par défaut
    Sinon, tu peux simuler un user :p
    (j'viens de découvrir ça, cé pas dur du tout :p)
    Il te suffit de lancer ton navigateur (IE ou Firefox à priori)
    puis de rentrer ton login, faire un TAB, entrer ton pass et valider
    bref en simple, ça donne ça :
    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
     
    #!C:\Perl\bin\perl.exe
    use strict;
    use Win32::GuiTest qw(:ALL);
    use vars qw/
    $nameAppli $site $login $pass
    /;
     
    $nameAppli='iexplore';
    $site='http://10.2.0.4';
    $login='met ton login ici';
    $pass='ton pass here';
     
    system("start $nameAppli $site");
    sleep(2); # histoire que le navigateur soit ouvert ;)
    SendKeys($login);
    SendKeys("{TAB}"); # On passe au champs password
    SendKeys($pass);
    SendKeys("~"); # On appuie sur ENTER ;)
    exit 0;
    Rq : Si tu veux faire un tout petit peu plus propre (ce sleep est pas génial mais marchera ; au pire tu l'augmente un peu si le navigateur est lent à se lancer...)
    donc : il est facile de reconnaitre une fenêtre, de la mettre au premier plan ou même d'attendre qu'elle s'ouvre :p
    bref tu peux utiliser WaitWindow ou WaitWindowLike à la place du sleep ^^
    regarde ici, il y a des exemples et la doc :p

  11. #11
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 18
    Par défaut
    Merci beaucoup.

    En fait le code de Jedai fonctionne bien. Merci a lui.

    Sinon wget fonctionne aussi et c'est tout aussi leger si ce n'est qu'il faut effacer le fichier telecharge apres (et que c'est pas du perl aussi).

    La solution de l'ouverture du browser est un peu plus lourd en fait et ca reviens a mettre un raccourci vers mon browser dans le dossier demarrer et donner comme page d'accueil 'http://login:mdp@x.x.x.x'

    Merci c'est sympa de votre part.

    A bientot

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C# 2.0] Authentification HTTPS
    Par murlock dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/10/2007, 07h12
  2. Authentification HTTP sur 2 serveurs
    Par mecha dans le forum Apache
    Réponses: 5
    Dernier message: 23/06/2006, 17h21
  3. probleme authentification http
    Par Langly dans le forum Apache
    Réponses: 2
    Dernier message: 23/06/2006, 14h39
  4. Réponses: 10
    Dernier message: 06/12/2005, 12h23

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