[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

linksys error 401 avec perl



Bonjour,

J'un un petit router linksys et je dois récupérer l'adresse ip qui à été attibué à celui-ci par mon FAI, cette adresse est disponible à l'adresse http://192.168.1.1/Status.htm .

J'ai écrit un script perl qui récupère cette page et en extrait l'adresse ip, seulement voilà, il ne me retourne que des erreurs 401, j'ai même capturer la requête http de perl dans un fichier avec netcat, et lorsque je lance la requête avec netcat et les entêtes capturées (nc 192.168.1.1 80 < capture.txt), ça fonctionne, j'en déduis que le champ "Authorization: Basic XXXXX" est bon, forcément, j'ai d'ailleurs fait l'essai de le modifier manuellement dans le fichier de capture pour être bien sûr que ça fonctionnais, alors pourquoi celà renvoie un code 401 lorsque c'est perl qui envoie ces entêtes ?

Je pense que le router n'est pas un garçon facile, il y a un petit truc qui lui convient pas dans la requête http lorsqu'elle provient de perl. Je n'ose pas croire que netcat modifie le fichier lorsqu'il le capture...

Le code utilisé :

#!/usr/bin/perl

use HTTP::Lite;
use MIME::Base64;

my $http = new HTTP::Lite;
$http->method( "GET" );
#my $encoded = encode_base64($config{user},$config{pass});
my $encoded = "xyzxyzxyzxyzxyz" ;

 $http->add_req_header("Authorization","Basic ".$encoded);
 $http->request("http://192.168.1.1/Status.htm";);

   my $heads = $http->headers_string();

   print "Status retourné : ".$http->status."\n";
   print $heads;
   print "\n";
   print $http->body ;



Reply to: