[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