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 <andreatagliol...@gmail.com <mailto:andreatagliol...@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 <andreatagliol...@gmail.com
    <mailto:andreatagliol...@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@lists.python.it  <mailto:Python@lists.python.it>
        http://lists.python.it/mailman/listinfo/python


        _______________________________________________
        Python mailing list
        Python@lists.python.it <mailto:Python@lists.python.it>
        http://lists.python.it/mailman/listinfo/python




-- Nicola Ferrari
    website: http://www.nicolaferrari.name

    skype: nick.ferro


    _______________________________________________
    Python mailing list
    Python@lists.python.it  <mailto:Python@lists.python.it>
    http://lists.python.it/mailman/listinfo/python


    _______________________________________________
    Python mailing list
    Python@lists.python.it <mailto:Python@lists.python.it>
    http://lists.python.it/mailman/listinfo/python




--
Nicola Ferrari
website: http://www.nicolaferrari.name

skype: nick.ferro


_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a