[Python] telnetlib gestione router

Andrea Tagliolini -Gmail andreatagliolini a gmail.com
Mer 4 Maggio 2011 11:53:19 CEST


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 <mailto: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
>>     <mailto: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  <mailto:Python a lists.python.it>
>>>         http://lists.python.it/mailman/listinfo/python
>>
>>
>>         _______________________________________________
>>         Python mailing list
>>         Python a lists.python.it <mailto: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  <mailto:Python a lists.python.it>
>>     http://lists.python.it/mailman/listinfo/python
>
>
>     _______________________________________________
>     Python mailing list
>     Python a lists.python.it <mailto: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

-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20110504/ce5c8e2f/attachment-0001.html>


Maggiori informazioni sulla lista Python