[Python] telnetlib gestione router
Andrea Tagliolini -Gmail
andreatagliolini a gmail.com
Mer 4 Maggio 2011 12:46:17 CEST
cosa uptime?
è un comando che di solito è tra quelli presenti nella bash del router.
Che router hai?
Se hai un linksys, ma anche altre marche sono flashabili, puoi usare
dd-wrt <http://www.dd-wrt.com/site/support/router-database>, oppure
openwrt <https://openwrt.org/>
in pratica metti un firmware basato su Gnu/Linux che ti permette di fare
molto ma molte più cose rispetto al fw originale.
Però devi verificare sul sito se il tuo modello è supportato.
Se mi dici il modello ti posso aiutare.
Ciao
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 <mailto: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 <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 <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/0481b1f6/attachment-0001.html>
Maggiori informazioni sulla lista
Python