Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

execution d'un script utilisant telnetlib

2 réponses
Avatar
ReM
Bonjour,

Voici mon script

#!/usr/bin/python2
# -*- coding: iso-8859-1 -*-

import telnetlib

default_login_camera = "root"
default_password_camera = "toto"
ip = '192.168.0.1'

#Connexion en telnet à la caméra
telnet = telnetlib.Telnet( ip )
telnet.read_until("login: ")
telnet.write(default_login_camera + "\n")
telnet.read_until("Password: ")
telnet.write(default_password_camera + "\n")

#Redémarrage

telnet.write("reboot\n")


Quand je copie ligne par ligne dans python sous linux, tout fonctionne.
Quand je lance le script : python reboot.py qui est sensé redémarrer la
machine ayant l'adresse ip 192.168.0.1 ( différente de la machine depuis
laquelle je lance le script ) RIEN ne se passe.

Quelqu'un a une idée ?
Merci

ReM

2 réponses

Avatar
ReM
Pour info, si je mets un "telnet.read_all()" à la fin de mon script et que
je le lance : python reboot.py, j'arrete la machine distante mais le script
se plante et ne me rend pas la main.
j'ai aussi essayé avec read_some() mais la machine ne redéùarre pas !
La je suis un peu bloqué ! Help !

"ReM" a écrit dans le message de news:
4173d824$0$23270$
Bonjour,

Voici mon script

#!/usr/bin/python2
# -*- coding: iso-8859-1 -*-

import telnetlib

default_login_camera = "root"
default_password_camera = "toto"
ip = '192.168.0.1'

#Connexion en telnet à la caméra
telnet = telnetlib.Telnet( ip )
telnet.read_until("login: ")
telnet.write(default_login_camera + "n")
telnet.read_until("Password: ")
telnet.write(default_password_camera + "n")

#Redémarrage

telnet.write("rebootn")


Quand je copie ligne par ligne dans python sous linux, tout fonctionne.
Quand je lance le script : python reboot.py qui est sensé redémarrer la
machine ayant l'adresse ip 192.168.0.1 ( différente de la machine depuis
laquelle je lance le script ) RIEN ne se passe.

Quelqu'un a une idée ?
Merci

ReM




Avatar
ardechou
en fait il faut tester continuellement ta connexion telnet.
telnet n'est pas une connexion tcp mais udp
donc il te faut toujours interroger ta connexion telnet pour savoir si
elle execute correctement ta commande.
donc en faisant
telnet.write(default_password_camera + "n")

tu lances default_password_camera dans la connexion crée , mais juste
aprés ton programme se termine , donc la connexion se termine aussi.
elle n'est plus active

la schematisation est claire , tu ouvres un tuyau telnet , tu injectes
un truc dedans , il te faut vérifier ce qu'il se passe dans ton tuyau
continuellement
si aprés avoir lancé une donnée dans le tuyau , tu fais un print ,
alors le print écrase ton envoie de donnée.
Moi, je fonctionne avec des sleep ou des while avec test de valeur de
retour

c'est à dire telenet.write("ls -rlt > result.txt; fin/n")
dans fin j'ai "echo termine"
donc des que mon "ls -rtl > result.txt" est fini tu as le script qui
affiche termine
tu testes avec la fonctionne read_until le contenu du tuyau telnet
jusqu'à ce que tu trouves 'termine', à ce moment tu pourras effectuer
autre chose en sachant que ton écriture dans le tuyau a été effectuée
voilà je ne sais pas si je suis clair , mais j'en ai bavé pour
comprendre le fonctionne d'une connexion telnet

hellprout