Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2017 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Script Telnet switcht Nortel/Avaya

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script Telnet switcht Nortel/Avaya

n°2193279
Mustaal
Je ne cherche pas à connaître
Posté le 07-06-2013 à 11:35:19  profilanswer
 

Bonjour à tous,

 

J'aimerai automatiser les sauvegardes automatiques de nos matériels réseaux=> switchs et routeurs.
A cette fin,j''ai créé un script perl qui fonctionne très bien mais là où j'ai un problème ce sont mes switchs qui demandes une authentification (Radius) en plus. Je m'explique, sur les switchs Nortel/avaya sans authentification Radius, une fois la session telnet établie on appuie sur les touche Ctrl+y afin d'accéder au menu du switch,mon script exécute les différents commandes pour la sauvegarde de la config.
Mais concernant les switchs Nortel/avaya avec authentification Radius, une fois la session telnet établie on appuie sur les touces Ctrl+y ensuite une nouvelle une fenêtre nous invite à introduire le User et le Password et c'est à ce niveau que je bloque depuis un certain temps. J'ai comme retour grâce au get() : User name not set!!
Là je suis perdu, le message user name not set, je ne peux l'avoir que si je n'introduis pas de user mais que j'introduis un mot de passe!
Que j'utilise waitfor() ou login() le problème est le même.

 

Pour info:
une capture de  l'écran après q'une session telnet soit établie:
http://imageshack.us/photo/my-images/841/login1h.png/

 

Une capture d'écran de l'invite radius :
http://imageshack.us/photo/my-images/703/login2f.png/

 

une capture d'écran du retour du get():
http://imageshack.us/photo/my-images/221/loginet.png/

 


Je fais appels à vos connaissances et gentillesses afin de résoudre ce petit problème qui me pourri la vie depuis une semaine ;-)

 


Code :
  1. if ($TELNET->open($HOST))
  2.    {
  3.     $TELNET->waitfor("Enter Ctrl-Y to begin." );
  4.     $TELNET->print("\cY" ) or die "=> cannot send Ctrl+Y \n=> ".$TELNET->errmsg."";
  5.     $TELNET->login("tftpbackup","tftpbackup" );
  6.     $TELNET->waitfor("IP Configuration/Setup..." );
  7.     $TELNET->print("c" ) or die "=> cannot send C \n=> ".$TELNET->errmsg."";
  8.     $TELNET->waitfor("$prompt" );
  9.     $TELNET->print("en\n" ) or die "=> cannot send enable \n=> ".$TELNET->errmsg."";
  10.     $TELNET->waitfor("$prompt" );
  11.     $TELNET->print("copy config tftp filename Test address 1.1.1.1" ) or die "=> Echec de l'envoi copy config \n=> ".$TELNET->errmsg."";
  12.     sleep 1;
  13.     @result=$TELNET->get();
  14.     $TELNET->waitfor("$prompt" );
  15.     print @result;
  16.  
  17.    }
  18. else
  19.     {
  20.       print("telnet pas possible\n" );
  21.     }


Message édité par Mustaal le 07-06-2013 à 11:42:42
mood
Publicité
Posté le 07-06-2013 à 11:35:19  profilanswer
 

n°2193282
gilou
Modérateur
Modzilla
Posté le 07-06-2013 à 11:48:08  profilanswer
 

:hello: Bonjour,
 
Avez vous lu les deux sujets suivants:
http://forum.hardware.fr/hfr/Progr [...] 9513_1.htm
http://forum.hardware.fr/hfr/Progr [...] 9577_1.htm
Il se pourrait bien que les informations qui y figurent suffisent a résoudre votre pb, sinon, on poussera plus en avant les investigations.
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2193294
Mustaal
Je ne cherche pas à connaître
Posté le 07-06-2013 à 13:39:03  profilanswer
 

gilou a écrit :

:hello: Bonjour,
 
Avez vous lu les deux sujets suivants:
http://forum.hardware.fr/hfr/Progr [...] 9513_1.htm
http://forum.hardware.fr/hfr/Progr [...] 9577_1.htm
Il se pourrait bien que les informations qui y figurent suffisent a résoudre votre pb, sinon, on poussera plus en avant les investigations.
 
A+,


 
 
Merci pour ta réponse rapide mais j'ai déjà lu ces deux sujets sans pour autant trouver une solution à mon problème.
 
Lorsque je test ces lignes :

Code :
  1. i if ($TELNET->open($HOST))
  2.    {
  3.     sleep 1;
  4.     $TELNET->waitfor("Enter Ctrl-Y to begin." );
  5.     $TELNET->print("\031" ) or die "=> cannot send Ctrl+Y \n=> ".$TELNET->errmsg."";
  6.     sleep 1;
  7.     @result=$TELNET->get();
  8.     $TELNET->waitfor('$prompt');
  9.     print @result;
  10.    }
  11. else
  12.     {
  13.          print("telnet pas possible\n" );
  14.     }


 
mon get() renvoie:
?[16;1HEnter Ctrl-Y to begin.?[18;3H********************************************
*******************?[19;3H*** Ethernet Switch 470-48T     ?[19;63H***?[20;3H***
Nortel                                                  ***?[21;3H*** Copyright
(c) 1996-2009,  All Rights Reserved           ***?[22;3H*** ESS 3.7 SSH?[22;63H*
**?[23;3H*** HW:33       FW:3.6.0.7   SW:v3.7.6.01 ISVN:2 ?[23;63H***?[24;3H****
***********************************************************?[?25l?[14;1H?[2K?[4;
1H?[2K?[4;26HUsername: [                 ]?[5;36H?[7;1m[ *************** ]?[0m?[
14;26HEnter Password: ?[?14l?[2J?[1;38HNetLogin?[4;26HUsername: ?[7;1m[  ]?[5;36
H?[7;1m[ *************** ]?[0m?[23;1H?[2KEnter text, press <Return> or <Enter> w
hen complete.?[14;26HEnter Username:
_____________________________________________________________________________
 
Et lorsque j'ajoute la fonction login:

Code :
  1. i if ($TELNET->open($HOST))
  2.    {
  3.     sleep 1;
  4.     $TELNET->waitfor("Enter Ctrl-Y to begin." );
  5.     $TELNET->print("\031" ) or die "=> cannot send Ctrl+Y \n=> ".$TELNET->errmsg."";
  6.     sleep 1;
  7.     $TELNET->login("dupont","mdp" );
  8.    sleep 1;
  9.     @result=$TELNET->get();
  10.     $TELNET->waitfor('$prompt');
  11.     print @result;
  12.    }
  13. else
  14.     {
  15.          print("telnet pas possible\n" );
  16.     }


 
Mon get() me renvoie:
 
←[14;1H←[2K←[14;26HEnter Password: *******←[14;26H←[2KUsername not set.
_____________________________________________________________________________
 
Que j'utilise login() ou waitfor() j'ai toujours ce Username not set!
 
j 'ai aussi  utilisé la commande dump_log dans mon script:
 
$TLENET->waitfor("Enter CTRL-y to begin." );
$TELNET->print("\cY" );
$TELNET->dump_log("avantlogin.txt" );
$TELNET->login("dupont","mdp" );
$TELNET->dump("apreslogin.txt" );
.
.
.
 
avantloin.txt donne:
< 0x003c0: 20 2a 0a 0d 1b 5b 31 34 3b 31 48 20 20 2a 2a 2a *...[14;1H ***
< 0x003d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x003e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x003f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x00400: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0d 1b 5b ************...[
< 0x00410: 31 35 3b 31 48 0a 0d 1b 5b 31 36 3b 31 48 45 6e 15;1H...[16;1HEn
< 0x00420: 74 65 72 20 43 74 72 6c 2d 59 20 74 6f 20 62 65 ter Ctrl-Y to be
< 0x00430: 67 69 6e 2e 1b 5b 31 38 3b 33 48 2a 2a 2a 2a 2a gin..[18;3H*****
< 0x00440: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x00450: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x00460: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x00470: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 1b 5b 31 39 3b 33 **********.[19;3
< 0x00480: 48 2a 2a 2a 20 45 74 68 65 72 6e 65 74 20 53 77 H*** Ethernet Sw
< 0x00490: 69 74 63 68 20 34 37 30 2d 34 38 54 20 20 20 20 itch 470-48T
< 0x004a0: 20 1b 5b 31 39 3b 36 33 48 2a 2a 2a 1b 5b 32 30 .[19;63H***.[20
< 0x004b0: 3b 33 48 2a 2a 2a 20 4e 6f 72 74 65 6c 20 20 20 ;3H*** Nortel
< 0x004c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
< 0x004d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
< 0x004e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a *
< 0x004f0: 2a 2a 1b 5b 32 31 3b 33 48 2a 2a 2a 20 43 6f 70 **.[21;3H*** Cop
< 0x00500: 79 72 69 67 68 74 20 28 63 29 20 31 39 39 36 2d yright (c) 1996-
< 0x00510: 32 30 30 39 2c 20 20 41 6c 6c 20 52 69 67 68 74 2009. All Right
< 0x00520: 73 20 52 65 73 65 72 76 65 64 20 20 20 20 20 20 s Reserved
< 0x00530: 20 20 20 20 20 2a 2a 2a 1b 5b 32 32 3b 33 48 2a ***.[22;3H*
< 0x00540: 2a 2a 20 45 53 53 20 33 2e 37 20 53 53 48 1b 5b ** ESS 3.7 SSH.[
< 0x00550: 32 32 3b 36 33 48 2a 2a 2a 1b 5b 32 33 3b 33 48 22;63H***.[23;3H
< 0x00560: 2a 2a 2a 20 48 57 3a 33 33 20 20 20 20 20 20 20 *** HW:33
< 0x00570: 46 57 3a 33 2e 36 2e 30 2e 37 20 20 20 53 57 3a FW:3.6.0.7 SW:
< 0x00580: 76 33 2e 37 2e 36 2e 30 31 20 49 53 56 4e 3a 32 v3.7.6.01 ISVN:2
< 0x00590: 20 1b 5b 32 33 3b 36 33 48 2a 2a 2a 1b 5b 32 34 .[23;63H***.[24
< 0x005a0: 3b 33 48 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ;3H*************
< 0x005b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x005c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x005d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x005e0: 2a 2a 1b 5b 3f 32 35 6c 1b 5b 31 34 3b 31 48 1b **.[?25l.[14;1H.
< 0x005f0: 5b 32 4b 1b 5b 34 3b 31 48 1b 5b 32 4b 1b 5b 34 [2K.[4;1H.[2K.[4
< 0x00600: 3b 32 36 48 55 73 65 72 6e 61 6d 65 3a 20 5b 20 ;26HUsername: [
< 0x00610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
< 0x00620: 5d 1b 5b 35 3b 33 36 48 1b 5b 37 3b 31 6d 5b 20 ].[5;36H.[7;1m[
< 0x00630: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 ***************
< 0x00640: 5d 1b 5b 30 6d 1b 5b 31 34 3b 32 36 48 45 6e 74 ].[0m.[14;26HEnt
< 0x00650: 65 72 20 50 61 73 73 77 6f 72 64 3a 20 1b 5b 3f er Password: .[?
< 0x00660: 31 34 6c 1b 5b 32 4a 1b 5b 31 3b 33 38 48 4e 65 14l.[2J.[1;38HNe
< 0x00670: 74 4c 6f 67 69 6e 1b 5b 34 3b 32 36 48 55 73 65 tLogin.[4;26HUse
< 0x00680: 72 6e 61 6d 65 3a 20 1b 5b 37 3b 31 6d 5b 20 20 rname: .[7;1m[
< 0x00690: 5d 1b 5b 35 3b 33 36 48 1b 5b 37 3b 31 6d 5b 20 ].[5;36H.[7;1m[
< 0x006a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 ***************
< 0x006b0: 5d 1b 5b 30 6d 1b 5b 32 33 3b 31 48 1b 5b 32 4b ].[0m.[23;1H.[2K
< 0x006c0: 45 6e 74 65 72 20 74 65 78 74 2c 20 70 72 65 73 Enter text. pres
< 0x006d0: 73 20 3c 52 65 74 75 72 6e 3e 20 6f 72 20 3c 45 s <Return> or <E
< 0x006e0: 6e 74 65 72 3e 20 77 68 65 6e 20 63 6f 6d 70 6c nter> when compl
< 0x006f0: 65 74 65 2e 1b 5b 31 34 3b 32 36 48 45 6e 74 65 ete..[14;26HEnte
< 0x00700: 72 20 55 73 65 72 6e 61 6d 65 3a 20 r Username:
 
> 0x00000: ff fd 01 ÿý.
 
> 0x00000: 74 66 74 70 62 61 63 6b 75 70 0d 0a tftpbackup..
 
< 0x00000: 1b 5b 31 34 3b 31 48 1b 5b 32 4b 1b 5b 31 34 3b .[14;1H.[2K.[14;
< 0x00010: 32 36 48 45 6e 74 65 72 20 50 61 73 73 77 6f 72 26HEnter Passwor
< 0x00020: 64 3a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 1b 5b 31 d: **********.[1
< 0x00030: 34 3b 32 36 48 1b 5b 32 4b 55 73 65 72 6e 61 6d 4;26H.[2KUsernam
< 0x00040: 65 20 6e 6f 74 20 73 65 74 2e e not set.

 
-_______________________________________________________________________
apreslogin.txt:
rien  
 
 
Merci de venir à mon secours ;-)


Message édité par Mustaal le 07-06-2013 à 16:29:13
n°2193340
gilou
Modérateur
Modzilla
Posté le 07-06-2013 à 18:18:30  profilanswer
 

Et en remplaçant
$TELNET->print("\031" ) or die "=> cannot send Ctrl+Y \n=> ".$TELNET->errmsg."";
par
$TELNET->put("\cY" ) or die "=> cannot send Ctrl+Y \n=> ".$TELNET->errmsg."";
vu que le print va envoyer un \n de trop, comme expliqué sur mon second lien.
Ça change quelque chose?
A+,

Message cité 1 fois
Message édité par gilou le 07-06-2013 à 18:18:49

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2193472
Mustaal
Je ne cherche pas à connaître
Posté le 10-06-2013 à 09:35:49  profilanswer
 

gilou a écrit :

Et en remplaçant
$TELNET->print("\031" ) or die "=> cannot send Ctrl+Y \n=> ".$TELNET->errmsg."";
par
$TELNET->put("\cY" ) or die "=> cannot send Ctrl+Y \n=> ".$TELNET->errmsg."";
vu que le print va envoyer un \n de trop, comme expliqué sur mon second lien.
Ça change quelque chose?
A+,


 
 
Bonjour,
 
Tu as vu  juste avec un put("\cY" ) , cela fonctionne impeccable!  
Avec le print() javais un retour à la ligne, mais je n'ai pas tilté dessus!  
 
Merci Gilou!!


Message édité par Mustaal le 10-06-2013 à 09:36:37
n°2212488
eycau
Posté le 03-12-2013 à 16:22:24  profilanswer
 

Bonjour,
Pourrait-tu poster l'intégralité de ton script stp car j'aimerais automatiser certaines taches sur mon parc de switch Avaya et étant débutant en perl, j'ai essayé de m'inspirer de ton code et de beaucoup de "tuto"/forum sur le net mais je galère vraiment au niveau de la connexion telnet et du prompt.
D'avance merci.
Cordialement,


Message édité par eycau le 03-12-2013 à 16:25:00
n°2212838
gilou
Modérateur
Modzilla
Posté le 06-12-2013 à 19:44:07  profilanswer
 

Il n'est pas passé sur le forum depuis cet été. Tu as été voir les liens donnés dans ma première réponse?
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2212988
eycau
Posté le 09-12-2013 à 13:49:34  profilanswer
 

Bonjour,
Oui j'ai été voir mais ca ne m'aide pas vu que j'essaye de faire un script pour des switch Nortel/Avaya.
Je suis convaincu que c'est le prompt qui m'empêche d'aller plus loin et comme je suis débutant en Perl...

n°2212998
gilou
Modérateur
Modzilla
Posté le 09-12-2013 à 14:31:33  profilanswer
 

Oui, enfin bon, la, tu as toutes les billes, entre ce post et les deux autres pointés.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Script Telnet switcht Nortel/Avaya

 

Sujets relatifs
créer un script .batScript erroné en passant au php5.4
Script d'activation de scriptScript d'automatisation de tache
[HTML/CSS/Javascript] Lien et script à partir de l'attribut altscript en langage batch
script shellscript perl
Exécution en local d'un script cgi[SHELL] Appel script .sh dans page http
Plus de sujets relatifs à : Script Telnet switcht Nortel/Avaya


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR