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: