[Python] telnetlib gestione router

Andrea Tagliolini -Gmail andreatagliolini a gmail.com
Mer 4 Maggio 2011 15:01:38 CEST


Allora forse ho capito male io.
Per intenderci, tu lanci reboot e poi vuoi sapere se effettivamente il 
reboot ha funzionato?
Perchè, in teoria ti basterebbe pingare l'host e se il reboot funziona, 
per alcuni secondi dovresti smettere di pingare il router...
Oppure volevi sapere altro?
Ciao

Il 04/05/2011 12:59, Andrea Ambu ha scritto:
> 2011/5/4 Andrea Tagliolini -Gmail<andreatagliolini a gmail.com>:
>> cosa uptime?
> Ma scusa, dopo il reboot dove lo lanci uptime?
>
>
>> Il 04/05/2011 12:36, Nicola Ferrari ha scritto:
>>
>> scau l'ignoranza... ma come funziona? E' un comando telnet? (giusto per
>> capire dove documentarmi)
>>
>> Il giorno 04 maggio 2011 11:53, Andrea Tagliolini -Gmail
>> <andreatagliolini a gmail.com>  ha scritto:
>>> Puoi anche controllare con il comando uptime, a quanto corrisponde "la
>>> vita" del router :)
>>>
>>> Il 04/05/2011 11:34, Nicola Ferrari ha scritto:
>>>
>>> Se riesco ci darò un occhiata...
>>> Una domanda "teorica"... una volta che da telnet faccio "reboot", per
>>> sapere se ha riavviato devo controllare se la rete è "su" giusto??
>>> solo che nel momento in cui faccio reboot al momento in cui la rete
>>> "cade", passa un po' di tempo.. come faccio a risolvere? Faccio uno sleep ?
>>> Di quanti secondi?
>>>
>>> Il giorno 04 maggio 2011 10:45, Andrea Tagliolini -Gmail
>>> <andreatagliolini a gmail.com>  ha scritto:
>>>> Ok, naturalmente puoi fare come vuoi :)
>>>> Comunque ti dò un piccolo esempio di pexpect per fare un ping verso il
>>>> dns di google nel router.
>>>>
>>>> import pexpect
>>>>
>>>>
>>>> telnet = pexpect.spawn("telnet 192.168.1.1")
>>>> telnet.expect("Login:")
>>>> telnet.sendline("username del tuo router")
>>>> telnet.expect("Password:")
>>>> telnet.sendline("password_del tuo router")
>>>> telnet.expect("#")
>>>> telnet.senline("ping -c 5 8.8.8.8")
>>>> telnet.expect("#")
>>>> telnet.interact()
>>>>
>>>> L'ho scritto al volo e potrebbero esserci errori, però in generale
>>>> funziona cosi.
>>>> Io lo uso molto spesso in ambito lavorativo e funziona alla grande :)
>>>>
>>>> Ciao
>>>>
>>>>
>>>> Il 04/05/2011 10:22, Nicola Ferrari ha scritto:
>>>>> Perchè non provi pexpect?
>>>> Perchè telnetlib sembra più usata/documentata (almeno, visto i risultati
>>>> che mi fornisce google quando ricerco python+telnet).
>>>>
>>>> 2011/5/4 Andrea Tagliolini -Gmail<andreatagliolini a gmail.com>
>>>>> Perchè non provi pexpect?
>>>>>
>>>>> http://pexpect.sourceforge.net/pexpect.html
>>>>>
>>>>> Ciao
>>>>>
>>>>> Il 04/05/2011 10:00, Nicola Ferrari ha scritto:
>>>>>
>>>>> Buongiorno a tutti.
>>>>> Tramite python (utilizzando l'esempio presente sulla documentazione
>>>>> della libreria telnetlib) riesco a connettermi, tramite telnet, al mio
>>>>> router.
>>>>> Ecco il codice del mio file "test.py"
>>>>> import getpass
>>>>> import sys
>>>>> import telnetlib
>>>>> HOST = "192.168.1.2"
>>>>> user = raw_input("Utente: ")
>>>>> password = getpass.getpass()
>>>>> tn = telnetlib.Telnet(HOST)
>>>>> tn.read_until("login: ")
>>>>> tn.write(user + "\n")
>>>>> if password:
>>>>>      tn.read_until("Password: ")
>>>>>      tn.write(password + "\n")
>>>>> tn.write("help \n")
>>>>> tn.write("exit\n")
>>>>> print tn.read_all()
>>>>>
>>>>>
>>>>> Così facendo, mi vengono forniti tutti i possibili comandi che posso
>>>>> lanciare.
>>>>> ~ # help
>>>>> Built-in commands:
>>>>> -------------------
>>>>>          . : break cd chdir continue eval exec exit export false hash
>>>>>          help local pwd read readonly return set shift source times trap
>>>>>          true type ulimit umask unset wait [ [[ ash cat chgrp chmod chown
>>>>>          cp date dd df echo egrep false fgrep free grep halt ifconfig
>>>>>          insmod kill killall klogd ln login ls lsmod mesg mkdir modprobe
>>>>>          more mv netstat nslookup ping pivot_root poweroff ps pwd reboot
>>>>>          rm rmdir rmmod route sh sleep sync syslogd tail telnetd test
>>>>>          tftp top touch traceroute true uname uptime vi watch wget who
>>>>>          whoami
>>>>>
>>>>> Non riesco a capire come funziona il "write":
>>>>> - scrive tutto quanto e poi, una volta lanciato read_all esegue e legge
>>>>> i risultati
>>>>> - esegue il comando fornito e il read_all legge solamente i risultati??
>>>>> E' per capire come poter fare un ping (per esempio)
>>>>> Grazie
>>>>>
>>>>> _______________________________________________
>>>>> Python mailing list
>>>>> Python a lists.python.it
>>>>> http://lists.python.it/mailman/listinfo/python
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Python mailing list
>>>>> Python a lists.python.it
>>>>> http://lists.python.it/mailman/listinfo/python
>>>>>
>>>>
>>>>
>>>> --
>>>> Nicola Ferrari
>>>> website: http://www.nicolaferrari.name
>>>>
>>>> skype: nick.ferro
>>>>
>>>>
>>>> _______________________________________________
>>>> Python mailing list
>>>> Python a lists.python.it
>>>> http://lists.python.it/mailman/listinfo/python
>>>>
>>>>
>>>> _______________________________________________
>>>> Python mailing list
>>>> Python a lists.python.it
>>>> http://lists.python.it/mailman/listinfo/python
>>>>
>>>
>>>
>>> --
>>> Nicola Ferrari
>>> website: http://www.nicolaferrari.name
>>>
>>> skype: nick.ferro
>>>
>>>
>>> _______________________________________________
>>> Python mailing list
>>> Python a lists.python.it
>>> http://lists.python.it/mailman/listinfo/python
>>>
>>>
>>> _______________________________________________
>>> Python mailing list
>>> Python a lists.python.it
>>> http://lists.python.it/mailman/listinfo/python
>>>
>>
>>
>> --
>> Nicola Ferrari
>> website: http://www.nicolaferrari.name
>>
>> skype: nick.ferro
>>
>>
>> _______________________________________________
>> Python mailing list
>> Python a lists.python.it
>> http://lists.python.it/mailman/listinfo/python
>>
>>
>> _______________________________________________
>> Python mailing list
>> Python a lists.python.it
>> http://lists.python.it/mailman/listinfo/python
>>
>>
>
>



Maggiori informazioni sulla lista Python