Bonjour
Je suis débutant en developpement Python (et autre langage d'ailleurs) et je bloque sur un simple script en Python qui effectuerait un telnet sur un matériel genre routeur
ou switch Cisco pour simplement y déposer un fichier en TFTP. Tout commence bien jusqu'au moment de "discuter" avec mon matériel "copy
tftp flash". Le read until intercepte bien la premiere ligne du telnet qui me demande l'adresse de mon serveur TFTP mais ensuite, quand il
demande le nom du fichier, il valide sans même prendre en compte le contenu de la variable que je lui envoie (MOH dans mon script ci dessous):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 import telnetlib import time compteur_ligne = 0 SRST = [] compteur_SRST = 0 with open("fichier_config.txt","r") as fichier_config: for ligne_fichier in fichier_config: if compteur_ligne == 8: MOH = ligne_fichier if compteur_ligne == 11: IPTFTP = ligne_fichier if compteur_ligne >= 14: SRST.append(ligne_fichier) compteur_ligne += 1 for val in SRST: Host,ID,Pass,EnPass = val.split(";") print ("Telnet en cours sur " + Host) TN = telnetlib.Telnet(Host) TN.read_until(b"Username: ") TN.write(ID.encode('utf8') + b"\n") TN.read_until(b"Password:") TN.write(Pass.encode('utf8') + b"\n") TN.read_until(b">") TN.write(b"EN\n") TN.read_until(b"Password: ") TN.write(EnPass.encode('utf8') + b"\n") TN.read_until(b"#") print ("Loggué correctement en tant que " + ID) print ("Execution du TFTP en cours...") TN.write(b"copy tftp: flash:\n") TN.read_until(b"[]? ") TN.write(IPTFTP.encode('utf8') + b"\n") time.sleep(1) TN.read_until(b"Source filename []? ") TN.write(MOH.encode('utf8') + b"\n") time.sleep(1) #TN.read_until(b"]? ") TN.write(MOH.encode('utf8') + b"\n") time.sleep(1) retour = TN.read_very_eager() print(retour)
Voici ce que j'ai quand je lance la commande manuellement:
Switch_Bricol_Ced#copy tftp flash
Address or name of remote host []? 10.206.54.65
Source filename []? TEXT.txt
Destination filename [TEXT.txt]?
Voici ce que me retourne le TN.read_very_eager en fin de script:
Code : Sélectionner tout - Visualiser dans une fenêtre à part b'\r\n?File name not specified\r\n%Error parsing filename (Unknown error 0)\r\nSwitch_Bricol_Ced#TEST.txt\r\nTranslating "TEST.txt"...domain server (255.255.255.255)'
on voit bien qu'il envoie l'erreur File name not specified donc il doit envoyer une valeur à blanc ou autre chose, la valeur MOH contient bien la bonne valeur, je l'ai affiché
avec un simple print....
Je pense que j'ai un probleme d'encoding mais c'est ultra galère à gérer le coding/decoding
Help me please!
Thanks in advance!
Partager