A voir également:
- Requires explicit package name at
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
- Denon perl pro test - Accueil - Audio
11 réponses
blux
Messages postés
26823
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
30 avril 2025
3 337
16 mars 2010 à 13:50
16 mars 2010 à 13:50
Salut,
et c'est quoi les erreurs ? A quelles lignes ?
et c'est quoi les erreurs ? A quelles lignes ?
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
16 mars 2010 à 15:46
16 mars 2010 à 15:46
Salut,
my $oid = « 1.3.6.1.4.1.318.1.1.12.1.5, 1.3.6.1.4.1.318.1.1.12.1.1 »;
my $host = « $ip »;
Utilise des guillemets
my $oid = « 1.3.6.1.4.1.318.1.1.12.1.5, 1.3.6.1.4.1.318.1.1.12.1.1 »;
my $host = « $ip »;
Utilise des guillemets
my $oid = "1.3.6.1.4.1.318.1.1.12.1.5, 1.3.6.1.4.1.318.1.1.12.1.1"; my $host = $ip;
Merci , oui ça marche mieux effectivement une faute d'inattention , et comme c'est le premier pas beaucoup de rigueur mais ça me re-balance sur une autre erreur ..
global symbol"$sessions" requires explicit package name ligne 20
global symbol"$error" requires explicit package name ligne 20
Donc je leur attribué une variable
my $session;
my $error;
et donc il me fait ca actuellement syntax error at line near "my"
donc je comprend pas du tout ...
global symbol"$sessions" requires explicit package name ligne 20
global symbol"$error" requires explicit package name ligne 20
Donc je leur attribué une variable
my $session;
my $error;
et donc il me fait ca actuellement syntax error at line near "my"
donc je comprend pas du tout ...
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
16 mars 2010 à 20:14
16 mars 2010 à 20:14
Salut,
Lance ton script avec la commande
Lance ton script avec la commande
perl -cx tonscript.plet ensuite colle ici le résultat
merci mai s'etait une faute de syntaxe que je n'avais pas vu .
mais la je suis encore bloquer jamais deux sans 3... :(
j'ai active perl 5.10
le net snmp c'est installer daans le fichier cpan
mais quand je lance il me dit
can't locate NET/SNMP.pm in @inc mais quand je regarde le SNMP.pm est bien dedans ... et fait reference a la ligne 13..
que faire :( ?
mais la je suis encore bloquer jamais deux sans 3... :(
j'ai active perl 5.10
le net snmp c'est installer daans le fichier cpan
mais quand je lance il me dit
can't locate NET/SNMP.pm in @inc mais quand je regarde le SNMP.pm est bien dedans ... et fait reference a la ligne 13..
#!/usr/bin/perl -w use strict; use warnings; my $i; my $choix; my $nom; my $ip; my $telnet; my $username="admin"; my $passwd="motsdepasse"; use lib "C:/Perl/site/lib"; use Net::Telnet; use Net::SNMP; my $HOST=('$ip'); my $HOSTS=('$nom'); my $snmp_port = 161; my $oid = " 1.3.6.1.4.1.318.1.1.12.1.5, 1.3.6.1.4.1.318.1.1.12.1.1 "; my $host = $ip ; my $community = " private "; my ($session, $error) = Net::SNMP->session(-hostname => $host,-timeout => 3,-retries => 1,-community => $community,-port => $snmp_port); do { print "vous voulez recherche par nom ou Par adresse Ip ?\n"; print "nom=1 et Adresse Ip=2 Quitter=3\n"; print"choix:"; $choix=<STDIN>; if( $choix == 1 ) { print"vous avez fait le choix 1 \n"; print"Saisir un nom : "; $nom=<STDIN>; $telnet->open($HOSTS); $telnet->login($username, $passwd); } elsif( $choix == 2 ) { print"vous avez fait le choix 2\n"; print"saisir une adresse IP :"; $ip=<STDIN>; $telnet->open($HOST); $telnet->login($username, $passwd); } else { print"vous avez fait aucun choix \n"; } } until( $choix==3);
que faire :( ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
17 mars 2010 à 11:12
17 mars 2010 à 11:12
Salut,
Tu es sur quelle distribution Linux?
mais quand je regarde le SNMP.pm est bien dedans ..
Tu devras dire plus. Tu regarde où? Dans quel répertoire?
Donne le chemin complet de ton module pm
Tu es sur quelle distribution Linux?
mais quand je regarde le SNMP.pm est bien dedans ..
Tu devras dire plus. Tu regarde où? Dans quel répertoire?
Donne le chemin complet de ton module pm
en faite je sais que c'est pas bien mais je suis sur windows ....
mais c'était un beuge j'ai redemarer la machine et c'est passer va savor pourquoi -_-'
donc il le prend bien en compte maitenant et tout les fichier son present ...
merci de tes réponses, et tu temps passer a me repondre
mais j'aurai encore besoin de soliciter tes conseil
j'arrive a lancer mon programme mais au debut il me dit que "Use of uninitialized value $host in substitution (s///) IPV4.pm ligne 64
Use of uninitialized value $host in substitution (s///) IPv4 ligne 72
c'est mon premier script et je connais pas tres bien , mais je comprend pas pourtant je lui est attribue une valeur dans le scripts
mais c'était un beuge j'ai redemarer la machine et c'est passer va savor pourquoi -_-'
donc il le prend bien en compte maitenant et tout les fichier son present ...
merci de tes réponses, et tu temps passer a me repondre
mais j'aurai encore besoin de soliciter tes conseil
j'arrive a lancer mon programme mais au debut il me dit que "Use of uninitialized value $host in substitution (s///) IPV4.pm ligne 64
Use of uninitialized value $host in substitution (s///) IPv4 ligne 72
c'est mon premier script et je connais pas tres bien , mais je comprend pas pourtant je lui est attribue une valeur dans le scripts
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
17 mars 2010 à 11:26
17 mars 2010 à 11:26
Re,
Affiche les lignes concernées. Merci.
Affiche les lignes concernées. Merci.
Ce deux ligne son tissu du fichier IPV4
elle me dit comme erreur "Use of Uninitialized value $host in substitution (s///)
Use of Uninitialized value in subroutine entry at (s///)
est ce qu'il y aurai conflit entre les deux $host de mon script et celle du fichieer IPV4 ?
parce qu'il se lance quand meme
my $serv = ($host =~ s/:([\w\(\)\/]+)$//) ? $1 : undef;
elle me dit comme erreur "Use of Uninitialized value $host in substitution (s///)
if (!defined ($nh->{addr} = inet_aton($_[1] = $host))) {
Use of Uninitialized value in subroutine entry at (s///)
est ce qu'il y aurai conflit entre les deux $host de mon script et celle du fichieer IPV4 ?
parce qu'il se lance quand meme
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
17 mars 2010 à 11:54
17 mars 2010 à 11:54
Re,
Mets en commentaire la ligne avec s/// et fait un
Mets en commentaire la ligne avec s/// et fait un
print "host => $host\n";
je peux pas modifier le fichier ipv4.pm a moins que j'en recre un et que je fasse ca .
et le print "host => $host\n";
je le fait sur mon script ?
et le print "host => $host\n";
je le fait sur mon script ?
package Net::SNMP::Transport::IPv4; use strict; use Net::SNMP::Transport; use IO::Socket qw( INADDR_ANY INADDR_LOOPBACK inet_aton PF_INET sockaddr_in inet_ntoa ); our $VERSION = v1.0.0; sub _socket_create { my ($this) = @_; return IO::Socket->new()->socket($this->_protocol_family(), $this->_protocol_type(), $this->_protocol()); } sub _protocol_family { return PF_INET; } sub _addr_any { return INADDR_ANY; } sub _addr_loopback { return INADDR_LOOPBACK; } sub _hostname_resolve { my ($this, $host, $nh) = @_; $nh->{addr} = undef; # my $serv = ($host =~ s/:([\w\(\)\/]+)$//) ? $1 : undef; <- celle la qui est avec les s/// if (defined($serv) && (!defined $this->_service_resolve($serv, $nh))) { return $this->_error('Failed to resolve the %s service', $this->type()); } if (!defined ($nh->{addr} = inet_aton($_[1] = $host))) { <- l'erreur subroutine return $this->_error( q{Unable to resolve the %s address "%s"}, $this->type(), $host ); } return $nh->{addr}; } sub _name_pack { return sockaddr_in($_[1]->{port}, $_[1]->{addr}); } sub _address { return inet_ntoa($_[0]->_addr($_[1])); } sub _addr { return (sockaddr_in($_[1]))[1]; } sub _port { return (sockaddr_in($_[1]))[0]; } sub _taddress { return sprintf '%s:%d', $_[0]->_address($_[1]), $_[0]->_port($_[1]); } sub _taddr { return $_[0]->_addr($_[1]) . pack 'n', $_[0]->_port($_[1]); } 1; # [end Net::SNMP::Transport::IPv4]
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
17 mars 2010 à 12:24
17 mars 2010 à 12:24
Re,
Je ne parle pas de toucher au module.
En regardant un peu plus ton code je vois des anomalies au début de script
my $HOST=('$ip');
my $HOSTS=('$nom');
Déjà $ip et $nom ne contient rien de tout.
Si les variables sont utilisé en tant que numérique alors elles sont initialisées à zéro sinon ça sera une chaine vide.
Ensuite même si $ip et $nom auraient été initialisées les apostrophes simples ne permettent pas l'interpolation des variables ce qui fait qu'en ce moment les variables contiennent :
$HOST contient la chaine $ip (littéral)
$HOSTS contient la chaine $nom (littéral)
my $host = $ip ; Ici $host contient la chaine vide donc dans ta session le hostname n'est pas défini il contient une chaine vide
my ($session, $error) = Net::SNMP->session(-hostname => $host ici c'est vide
Je ne parle pas de toucher au module.
En regardant un peu plus ton code je vois des anomalies au début de script
my $HOST=('$ip');
my $HOSTS=('$nom');
Déjà $ip et $nom ne contient rien de tout.
Si les variables sont utilisé en tant que numérique alors elles sont initialisées à zéro sinon ça sera une chaine vide.
Ensuite même si $ip et $nom auraient été initialisées les apostrophes simples ne permettent pas l'interpolation des variables ce qui fait qu'en ce moment les variables contiennent :
$HOST contient la chaine $ip (littéral)
$HOSTS contient la chaine $nom (littéral)
my $host = $ip ; Ici $host contient la chaine vide donc dans ta session le hostname n'est pas défini il contient une chaine vide
my ($session, $error) = Net::SNMP->session(-hostname => $host ici c'est vide
ah j'ai du mal compris les cours que j'ai vu alors :(
remarque j'apprend de mes erreus comme ca, avec mon premier script , mais je pensais qu'en mettant ca elle devrai prendre ce que je metais dans le $ip=<stdind>
et donc devrai ouvir le nom que je mettais donc c'est sur si c'est vide c'est normal que ca peut pas marcher :(,
j'ai enlever les simple guilemet pour qu'il les vois variable mes le probleme persiste :(
remarque j'apprend de mes erreus comme ca, avec mon premier script , mais je pensais qu'en mettant ca elle devrai prendre ce que je metais dans le $ip=<stdind>
et donc devrai ouvir le nom que je mettais donc c'est sur si c'est vide c'est normal que ca peut pas marcher :(,
j'ai enlever les simple guilemet pour qu'il les vois variable mes le probleme persiste :(
j'ai un peu avancer et modifier le script ;
avec des info sur un site et ce que tu me dit .
la j'essai de comprendre l'erreur 'problem connection 10.75.xxx.xx port 23 unknow error
ligne 42
avec des info sur un site et ce que tu me dit .
#!/usr/bin/perl -w use strict; use warnings; my $i; my $choix; my $nom; my $ip; my $t; my $telnet; my $username="admin"; my $passwd="motsdepasse"; use lib "C:/Perl/site/lib"; use Net::Telnet; $t = new Net::Telnet (Timeout => 10,Prompt => '/bash\$ $/'); use Net::SNMP; my $host; my $snmp_port = 161; my $oid = " 1.3.6.1.4.1.318.1.1.12.1.5, 1.3.6.1.4.1.318.1.1.12.1.1 "; my $community = " public "; do { print "vous voulez recherche par nom ou Par adresse Ip ?\n"; print "nom=1 et Adresse Ip=2 Quitter=3\n"; print"choix:"; $choix=<STDIN>; if( $choix == 1 ) { print"vous avez fait le choix 1 \n"; print"Saisir un nom : "; $host=<STDIN>; $t->open($host); $t->login($username, $passwd); } elsif( $choix == 2 ) { print"vous avez fait le choix 2\n"; print"saisir une adresse IP :"; chomp ($host=<STDIN>); print "host => $host\n"; $t->open($host); $t->login($username, $passwd); <- cette ligne 43 } else { print"vous avez fait aucun choix \n"; } } until( $choix==3); my ($session, $error) = Net::SNMP->session(-hostname => $host,-timeout => 3,-retries => 1,-community => $community,-port => $snmp_port);
la j'essai de comprendre l'erreur 'problem connection 10.75.xxx.xx port 23 unknow error
ligne 42
j'ai un peu avancer et modifier le script ;
avec des info sur un site et ce que tu me dit .
la j'essai de comprendre l'erreur 'problem connection 10.75.xxx.xx port 23 unknow error
ligne 42
avec des info sur un site et ce que tu me dit .
#!/usr/bin/perl -w use strict; use warnings; my $i; my $choix; my $nom; my $ip; my $t; my $telnet; my $username="admin"; my $passwd="motsdepasse"; use lib "C:/Perl/site/lib"; use Net::Telnet; $t = new Net::Telnet (Timeout => 10,Prompt => '/bash\$ $/'); use Net::SNMP; my $host; my $snmp_port = 161; my $oid = " 1.3.6.1.4.1.318.1.1.12.1.5, 1.3.6.1.4.1.318.1.1.12.1.1 "; my $community = " public "; do { print "vous voulez recherche par nom ou Par adresse Ip ?\n"; print "nom=1 et Adresse Ip=2 Quitter=3\n"; print"choix:"; $choix=<STDIN>; if( $choix == 1 ) { print"vous avez fait le choix 1 \n"; print"Saisir un nom : "; $host=<STDIN>; $t->open($host); $t->login($username, $passwd); } elsif( $choix == 2 ) { print"vous avez fait le choix 2\n"; print"saisir une adresse IP :"; chomp ($host=<STDIN>); print "host => $host\n"; $t->open($host); $t->login($username, $passwd); <- cette ligne 42 } else { print"vous avez fait aucun choix \n"; } } until( $choix==3); my ($session, $error) = Net::SNMP->session(-hostname => $host,-timeout => 3,-retries => 1,-community => $community,-port => $snmp_port);
la j'essai de comprendre l'erreur 'problem connection 10.75.xxx.xx port 23 unknow error
ligne 42
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
>
scrathi
17 mars 2010 à 14:17
17 mars 2010 à 14:17
Re,
Bon, tu avances pas à pas, mais pas trop méthodique selon moi, ne le prends pas mal.
Essaie de faire les choses une par une. Voir mon message numéro 17.
Bon, tu avances pas à pas, mais pas trop méthodique selon moi, ne le prends pas mal.
Essaie de faire les choses une par une. Voir mon message numéro 17.
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
17 mars 2010 à 14:12
17 mars 2010 à 14:12
Re,
Oui, mais STDIN c'est bien après.
Je pense que pour le moment tu devras laisser tomber la boucle et faire un test un ip en dur pour voir si ça marche.
Si ça sera le cas alors tu verras pour le menu.
Voici un exemple (j'ai un peu rangé ton code) qui sera un bon début, puisque franchement, débutant en Perl c'est un peu compliqué ce que tu fais (en fait je ne sais pas encore ce que tu veux ;-)
Oui, mais STDIN c'est bien après.
Je pense que pour le moment tu devras laisser tomber la boucle et faire un test un ip en dur pour voir si ça marche.
Si ça sera le cas alors tu verras pour le menu.
Voici un exemple (j'ai un peu rangé ton code) qui sera un bon début, puisque franchement, débutant en Perl c'est un peu compliqué ce que tu fais (en fait je ne sais pas encore ce que tu veux ;-)
#!/usr/bin/perl -w use strict;use warnings; use Net::Telnet; use Net::SNMP; use lib "C:/Perl/site/lib"; my $username="admin"; my $passwd="motsdepasse"; my $community = " private "; my $snmp_port = 161; my $oid = " 1.3.6.1.4.1.318.1.1.12.1.5, 1.3.6.1.4.1.318.1.1.12.1.1 "; my $host = "ici tu mettras ta valeur"; my $nom = "ici tu mets ta valeur"; my ($session, $error) = Net::SNMP->session(-hostname => $host, -timeout => 3, -retries => 1, -community => $community, -port => $snmp_port ); # SNMP ça te sers à quoi en fait? my $telnet = new Net::Telnet (Timeout => 10); # par exemple $telnet->open($nom); $telnet->login($username, $passwd); # ensuite il faut lancer une commande pour faire un test
oui , je sais que pour un debutant c'est pas non plus facile mais on me la demander ,
j'utilise le snmp. dans le but de me connecter sur divers equipement qui me permeteron de remonter des infomation avec leur mib ou $oid
au lieu d'aller sur l'equipement lui meme utilise se programme pour le faire a la place
j'utilise le snmp. dans le but de me connecter sur divers equipement qui me permeteron de remonter des infomation avec leur mib ou $oid
au lieu d'aller sur l'equipement lui meme utilise se programme pour le faire a la place
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
17 mars 2010 à 14:27
17 mars 2010 à 14:27
Re,
Oui, d'accord, mais pour le moment tu testes telnet.
Donc fait pas à pas et ne te lances pas dans un script trop long.
Il deviendra long après avoir teste les petits bouts de code.
Essaie de mettre tes valeurs et testes seulement la partie connexion par nom.
Oui, d'accord, mais pour le moment tu testes telnet.
Donc fait pas à pas et ne te lances pas dans un script trop long.
Il deviendra long après avoir teste les petits bouts de code.
Essaie de mettre tes valeurs et testes seulement la partie connexion par nom.
16 mars 2010 à 14:01
http://img704.imageshack.us/img704/2742/pdu.jpg en image ^^
sinon l'erreur il me dit can't call method "open" on undefined value et apres le chemin du lien
16 mars 2010 à 14:10
16 mars 2010 à 15:42
je viens de rajouter des choses :( mais tjr autant de probleme que je ne connais pas
unrecognized charater \xAB ligne 17 ..
merci de m'aider .