Connexion Web Perl Windows

Fermé
math74150 - 9 avril 2009 à 09:35
 math74150 - 9 avril 2009 à 11:22
Salut tout le monde,

je suis sur un projet et il me faut réaliser une connexion à un site web (ex: google) en perl, sous windows.

Si quelqu'un posséde un corps ou, par miracle, le code entier, je lui serai reconnaissant de son aide précieuse.

Merci
A voir également:

32 réponses

Ok, je vais ré essayer alor

Debut

variable:

Addr = www.google.com
NavName = Firefox
NavEmpl = ?


ouvrir firefox avec NavName, NavEmpl et Addr
afficher "Connexion reussi"

mieu ?
0
Kharec Messages postés 4146 Date d'inscription dimanche 20 avril 2008 Statut Contributeur Dernière intervention 8 mai 2011 509
9 avril 2009 à 10:34
Fait comme ça, le programme ne se connectera pas, il affichera simplement une phrase ;-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
9 avril 2009 à 10:38
Re,

J'ai fait un jour un exercice. Voir ici http://www.commentcamarche.net/forum/affich 2453825 perl reseaux?page=3#43

Il y a aussi une partie http (à adapter) - cette fois je confirme que chez moi ça a marché
'http'=> <<'FIN',
open DAEMON,">> log.exo"
    or die "E/S : $!\n";
if ( ($url = Net::HTTP->new(Host => "$surl")) and
	   ($url->write_request(GET => "/")) ) {
   print DAEMON "$date $surl valide et existe sur web\n";
   close DAEMON;
}
else {
   print DAEMON "$date $surl inexistant || hors connexion || format invalide\n";
   close DAEMON;
}
FIN
0
Kharec Messages postés 4146 Date d'inscription dimanche 20 avril 2008 Statut Contributeur Dernière intervention 8 mai 2011 509
9 avril 2009 à 10:41
Tant qu'on y ait, je voudrais te demande ce que signifie
 print DAEMON
par rapport à un print simple??

Merci =)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569 > Kharec Messages postés 4146 Date d'inscription dimanche 20 avril 2008 Statut Contributeur Dernière intervention 8 mai 2011
9 avril 2009 à 10:47
Re,

print ".....\n"; envoie le résultat sur la sortie standard (écran)

print HANDLE "......\n" envoie le résultat vers un handle de fichier

Si tu regardes au début de code tu verras ça
open DAEMON,">> log.exo"
    or die "E/S : $!\n";


Donc print DAEMON écrit dans le fichier log.exo
0
Kharec Messages postés 4146 Date d'inscription dimanche 20 avril 2008 Statut Contributeur Dernière intervention 8 mai 2011 509 > lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019
9 avril 2009 à 10:47
Merci de m'avoir expliqué =)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569 > Kharec Messages postés 4146 Date d'inscription dimanche 20 avril 2008 Statut Contributeur Dernière intervention 8 mai 2011
9 avril 2009 à 10:53
Re,

Par défaut c'est le descripteur STDOUT.
Il y a la fonction select qui te permet de changer le descripteur par défaut.
0
lami20j, ton code permet de se connecter à un site internet ? car j'ai regardé ton exercice sur le lien et je t'avoue que j'ai rien compris. Si tu pouvais me dire simplement comment faire cette connexion, ce serai super :) merci
0
Se connecter d'accord?
Mais quoi faire après la connexion.


Je souhaite pouvoir naviguer sur le site à partir de la connexion réaliser en perl, si tu vois ce que je veux dire en plus simple
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
KraD_74 Messages postés 2 Date d'inscription jeudi 9 avril 2009 Statut Membre Dernière intervention 9 avril 2009
9 avril 2009 à 10:55
Essaye ça :

#!/usr/bin/perl -w
use strict;
use IO::Socket::INET;

# ouvre une connexion sur le serveur
my $sock = IO::Socket::INET->new(
PeerAddr => 'paris.mongueurs.net',
PeerPort => 'http(80)',
Proto => 'tcp'
) or die "Impossible de se connecter";

# envoie la requête
print $sock "GET / HTTP/1.0\015\012Host: paris.mongueurs.net\015\012\015\012";

# récupère la réponse
my $page = do { local $/; <SOCK> };

# ferme la connexion
close $sock or die "close: $!";
0
Déjà essayer, ca ne marche pas. Après, il ya peut etre des paramètre a changé ??
0
lami20j,

le code que tu met en exemple affiche juste "impossible de fer get www.....".

et tu sur qu'il réalise une connexion ?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
9 avril 2009 à 11:03
Re,

#!/usr/bin/perl
use warnings;use strict;

use Net::HTTP;


my $url0='www.google.com';

if ( ($url = Net::HTTP->new(Host => "$surl")) and
	   ($url->write_request(GET => "/")) ) {
   print  "$surl valide et existe sur web\n";
}
else {
   print  "$surl inexistant || hors connexion || format invalide\n";
}

ou
use LWP::Simple; 
use URI::URL; 

my $url = url(' http://www.google.fr') ; 
$contenu = get($url); 
print "$contenu"
__END__


0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
9 avril 2009 à 11:05
Re,

Quand j'ai faut les tests sur l'exercice, j'ai bien testé.
Maintenant je ne peux rien te dire, je n'ai pas moyen de tester.
Je ne pourrai le faire que ce soir à la maison, mais bon, j'espère que tu arriveras jusqu'à ce soir ;-)
0
use Net::HTTP;

j'ai un souci au niveau de cette ligne. quand je l'éxecute , il me met

can't locate Net/HTTP.pm in @INC

et quand je vais dans mon dossier c:\perl\lib\net, je n 'ai pa le HTTP.pm
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
9 avril 2009 à 11:12
Re,

Ah,d'accord.
Il faut installer le module.
Regarde ici https://djibril.developpez.com/tutoriels/perl/installation-modules/#LII
0
Merci pour ton aide mais je ne vois pas du tout comment installer ce module. le lien que tu me donne me renvoi sur un site qui explique comment y faire mais je t'avoue que c'est assez flou pour moi :'(
0