Script perl pour se connecter à un hôte distant
tdloic
Messages postés
18
Statut
Membre
-
blux Messages postés 27887 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 27887 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai écris un script Perl pour faire des requêtes SNMP. le problème est que je n'arrive pas à me connecter sur des équipements ayant un login et un mot de passe. J'ai besoin d'aide SVP.
merci d'avance.
PS: voici le code
J'ai écris un script Perl pour faire des requêtes SNMP. le problème est que je n'arrive pas à me connecter sur des équipements ayant un login et un mot de passe. J'ai besoin d'aide SVP.
merci d'avance.
PS: voici le code
use strict;
use warnings;
use Net::SNMP;
my $OID_sysDescr = '.1.3.6.1.2.1.1.1.0'; #Utilisation pour la description du matériel.
my $host = '192.168.240.67';
#Permet de lancer une connexion sur l'équipement.
my ($session, $error) = Net::SNMP->session(
-hostname => $host,
-port => "161",
-version => "2",
-community => "public",
-nonblocking => 1,
);
#Permet de signaler si une erreur a lieu lors de la connexion.
if (!defined $session) {
print "ERREUR: Impossible d'établir la connexion avec ", $host, $error;
}
#Requète SNMP.
my $result = $session->get_request(
-varbindlist => [ $OID_sysDescr ],
-callback => [ \&get_callback, $host ],
);
#Permet de signaler si une erreur a lieu lors de la requête.
if (!defined $result) {
print "ERREUR: Impossible d'effectuer la requete SNMP \n", $session->hostname(), $session->error();
}
# Permet d'afficher le message SNMP en clair.
snmp_dispatcher();
$session->close();
sub get_callback
{
my ($session, $location) = @_;
my $result = $session->var_bind_list();
if (!defined $result) {
print "ERREUR: Impossible d'effectuer la requete SNMP (get) \n",
$session->hostname(), $session->error();
return;
}
print $result->{$OID_sysDescr};
if (!defined $result) {
print "ERREUR: Impossible d'effectué la requête SNMP (set): %s.\n",
$session->hostname(), $session->error();
}
return;
}
sub set_callback
{
my ($session) = @_;
my $result = $session->var_bind_list();
return;
}
<>;
A voir également:
- Script perl pour se connecter à un hôte distant
- Se connecter à gmail sur téléphone - Guide
- Se connecter à ma boite hotmail - Guide
- Comment se connecter à un chromecast - Guide
- Facebook se connecter à un autre compte - Guide
- Script vidéo youtube - Guide
2 réponses
Salut,
je n'utilise pas Net::SNMP, mais sa documentation sur CPAN indique que le constructeur supporte les arguments suivants gérant l'authentification :
qui sont absents de ton script.
Dal
je n'utilise pas Net::SNMP, mais sa documentation sur CPAN indique que le constructeur supporte les arguments suivants gérant l'authentification :
session() - create a new Net::SNMP object
($session, $error) = Net::SNMP->session(
(...)
[-username => $username,] # v3
[-authkey => $authkey,] # v3
[-authpassword => $authpasswd,] # v3
[-authprotocol => $authproto,] # v3
[-privkey => $privkey,] # v3
[-privpassword => $privpasswd,] # v3
[-privprotocol => $privproto,] # v3
);
qui sont absents de ton script.
Dal
tdloic
Messages postés
18
Statut
Membre
68
merci Dal. J'ai déjà lu cette documentation sur CPAN. Mais cela ne résoud pas mon problème, je parle plutôt de login et de mot de passe des équipements. Et en plus j'utilise SNMPv2c, or les paramètres que tu as cité ne sont valide que sous SNMPv3
Salut,
tu prends un user SNMP ou un user de connexion 'standard' ?
Quel message d'erreur as-tu ? Ou quel comportement observes-tu ?
tu prends un user SNMP ou un user de connexion 'standard' ?
Quel message d'erreur as-tu ? Ou quel comportement observes-tu ?
J'avais pas vu que tu prenais la communauté publique.
Est-ce que snmp est 'activé' sur ton matériel ?
Est-ce qu'avec un outil 'du marché', comme celui-ci, tu arrives à récupérer des infos de ton équipement ?
Est-ce que snmp est 'activé' sur ton matériel ?
Est-ce qu'avec un outil 'du marché', comme celui-ci, tu arrives à récupérer des infos de ton équipement ?
tdloic,
Il semble que SNMPv2c utilise la méthode d'authentification de la v1, à savoir l'utilisation de la chaîne "community" en clair. Après, je suppose qu'il faut que ton équipement soit paramétré avec la même chaîne "community", et que les droits définis n'interdisent pas ton adresse IP, ou l'autorisent, etc.
Blux a l'air plus calé que moi sur SNMP, je t'invite chaudement à répondre à ses questions.
Dal
Il semble que SNMPv2c utilise la méthode d'authentification de la v1, à savoir l'utilisation de la chaîne "community" en clair. Après, je suppose qu'il faut que ton équipement soit paramétré avec la même chaîne "community", et que les droits définis n'interdisent pas ton adresse IP, ou l'autorisent, etc.
Blux a l'air plus calé que moi sur SNMP, je t'invite chaudement à répondre à ses questions.
Dal
j'ai installé l'agent SNMPsuivant sur les PC: NuDesign_EAgentService006_v9.0.0.10.exe https://www.loriotpro.com/Products/NudesignSNMPAgentDoc/Windows-SNMP_Agent_Nudesign.htm
quand je fais les tests, mon code ne marche que sur les PC n'ayant pas de mot de passe. Pour ceux ayant les mots de passe, je recois l'erreur: No response from remote host "169.168.240.67"
quand je fais les tests, mon code ne marche que sur les PC n'ayant pas de mot de passe. Pour ceux ayant les mots de passe, je recois l'erreur: No response from remote host "169.168.240.67"
As-tu essayé avec l'agent SNMP standard windows ?
Quand tu parles de mot de passe, c'est celui du compte windows ?
Quand tu parles de mot de passe, c'est celui du compte windows ?