View Full Version : Creare uno script per Telnet è possibile?
Ciao a tutti,
spero sia la sezione giusta.
ho la necessità di creare un .bat che mi connetta al router ed esegua un comando in telnet.
E' per il netgear dg834gt; abilitando il debug a parte, son fermo qui
telnet 192.168.1.1 23
e fin qui mi apre correttamente il box dove inserire il comando, ma non cè possibilità di farglielo scrivere automaticamente e poi chiudere la finestra di dialogo del telnet?
se qualcuno può darmi qualche indicazione come procedere gliene sarei grato.
grazie a tutti in anticipo
ciao!
Ciao a tutti,
spero sia la sezione giusta.
ho la necessità di creare un .bat che mi connetta al router ed esegua un comando in telnet.
E' per il netgear dg834gt; abilitando il debug a parte, son fermo qui
telnet 192.168.1.1 23
e fin qui mi apre correttamente il box dove inserire il comando, ma non cè possibilità di farglielo scrivere automaticamente e poi chiudere la finestra di dialogo del telnet?
se qualcuno può darmi qualche indicazione come procedere gliene sarei grato.
grazie a tutti in anticipo
ciao!
ho fatto quello che spieghi tu, però con l'aiuto di perl e il modulo Net::Telnet.
se vuoi delucidazioni chiedi pure!
ho fatto quello che spieghi tu, però con l'aiuto di perl e il modulo Net::Telnet.
se vuoi delucidazioni chiedi pure!
:ave: !!!
ma hai creato un eseguibile? un .bat ? non sò proprio nulla di programmazione, come posso procedere?
Io per ora sto usando kitty una versione leggermente diversa da putty un client telnet che permette di memorizzare un profilo e dei comandi da eseguire in automatico, ma vorrei escluderlo se possibile :)
Se puoi condividere il tuo lavoro o darmi indicazioni te ne sarei molto grato!
grazie comunque per l'attenzione
Scrivi in un file di testo i comandi da inserire seguiti da invio. Chiamalo ad esempio data.txt
telnet 192.168.1.1 23 < data.txt
Scrivi in un file di testo i comandi da inserire seguiti da invio. Chiamalo ad esempio data.txt
telnet 192.168.1.1 23 < data.txt
grazie, appena posso provo, ma devo mettere anche il percorso prima di data.txt? es: c:\data.txt ?
Se sei nella stessa directory fi data.txt no
in effetti per quello che devi fare basta quello che dice cionci, nel mio caso era un poco più complesso perchè mi serve per leggere velocemente i valori di attenuazione e snr dal router, la cui interfaccia web fa penare e non mostra questi dati su snmp...quindi è comodo perchè mi permette di estrapolare i dati con espressioni regolari dall'output dei comandi che mi interessano.
posto comunque il mio script nel caso serva a qualcuno (il router è un conexant based della atlantisland).
per windows è necessario installare o activestate - activeperl
http://www.activestate.com/store/productdetail.aspx?prdGuid=81fbce82-6bd5-49bc-a915-08d58c2648ca
oppure avere cygwin con perl installato.
http://www.cygwin.com/
#!/usr/bin/perl
use Net::Telnet();
# Dati connessione
$hostname = "123.123.123.123";
$password = "password";
# apertura connessione
$t = new Net::Telnet;
$t->open($hostname);
# attesa prompt password
$t->waitfor('/Password[: ]*$/i');
$t->print($password);
# attesa prompt shell
$t->waitfor('/router[> ]*$/i');
# invio comando
@lines = $t->cmd("wan adsl linedata near");
exit;
rendere eseguibile lo script e lanciarlo. :D
come alternativa più flessibile al telnet suggerito da cionci guardati netcat (http://www.vulnwatch.org/netcat/nc111nt.zip)
echo "tuo comando" |nc nome_host porta
mi unisco alla richiesta, anche io da tempo ho questo problema, devo configurare tanti (tanti) router via telnet, sempre con la stesse stringhe, putroppo non ho trovato nulla di pratico..
telnet nome_host porta < istruzioni.txt
a me non funziona :(
ora provo con perl, ma se possibile volevo qualcosa di portabile anche su altri pc..
telnet nome_host porta < istruzioni.txt
a me non funziona :(
Impossibile, dovrebbe funzionare tranquillamente. Ma immetti proprio tutti i comandi ? Compresi lo username e la password ?
se riuscissi a farlo funzionare sarebbe perfetto
user lamiauser
pass lamiapass
quit
telnet popdellaposta 110 < istruzioni.txt
Microsoft Telnet Client
Il carattere di Escape è 'CTRL++'
Microsoft Telnet> Microsoft Telnet>
In effetti non funziona e sinceramente non me lo spiego :confused:
ho trovato un programmino che faceva al caso mio, molto semplice ma abbastanza pratico
Telnet Scripting Tool (Tst10)
io ho fatto prima a scrivermi un programma in c che facesse tutto
telnet è molto semplice, c'è solo una piccola fase di handshake poi è tutto testo ;)
C'è una fase di handshake :confused: Che mi ricordi no...è proprio tutto testo. Tant'è che con un client telnet ti puoi connettere a praticamente tutti i servizi TCP text e command based, telnetd, ftp (solo sessione comandi), http, pop3, smtp etc etc...
C'è una fase di handshake :confused: Che mi ricordi no...è proprio tutto testo. Tant'è che con un client telnet ti puoi connettere a praticamente tutti i servizi TCP text e command based, telnetd, ftp (solo sessione comandi), http, pop3, smtp etc etc...
piccolissima
in pratica ti viene richiesto se vuoi abilitare echo, flow control, che terminale usi
se sniffi una sessione vedi questi dati subito, c'è un codice (0xff) seguito da uno o due byte che rappresentano il comando
il resto è testo
una volta che escludi quei caratteri e che rispondi al server dicendogli se vuoi fare echo o no sei a posto e comunichi con solo testo
io ho scritto in C perché mi vieniva più comodo usare un programma "tradizionale" ma il telnet si può implementare facilmente con expect http://expect.nist.gov/ volendo :)
Sì, ma questo handshake c'è se ti connetti ad un telnetd, non ad uno qualsiasi degli altri servizi, o sbaglio ?
Sì, ma questo handshake c'è se ti connetti ad un telnetd, non ad uno qualsiasi degli altri servizi, o sbaglio ?
sì è per il demone telnet
ciao a tutti
ho notato questo thread solo oggi
anche a me servirebbe la possibilità di creare script telnet, per effettuare il login.
vivo a pavia, e qui le residenze universitarie usano hypercut, un programmino per windows. in alternativa a hypercut, si può usare:
telnet login.edisu.pv.it
alla richiesta Username: e alla richiesta Password: bisogna inserire i valori richiesti...
il problema è che il login va effettuato ogni ora.... è una discreta rottura di scatole....
vorrei sapere come posso fare a creare uno script che ogni 60 minuti inserisca automaticamente userid e passwd....
grazie a tutti per l'aiuto
carlo
Teo@Unix
29-01-2010, 22:10
Sì, ma questo handshake c'è se ti connetti ad un telnetd, non ad uno qualsiasi degli altri servizi, o sbaglio ?
:O la famosa "connessione a tre vie" (three-way handshake) avviene per tutte le connessioni. E "connessione" è un concetto esclusivo del modulo TCP.
Una volta comlpetato il three-way handshake la comunicazione ha inizio, in caso di telnet non è crittografata e avviene per caratteri, ovvero buffer da 1 solo byte.
Moltissimi servizi TCP sono abbordabili con telnet,
ragione per cui telnetd sottopone la vostra rete a pericolosi rischi, difatti i nuovi s.o. non anno installato telnet di default (Xp in poi) in funzione del passaggio alla molto più sicura ssh.
username e password possono essere inseriti come argomento,
un' occhio all'help:
telnet [-a][-e car esc][-f file registro][-l utente][-t terminale][host [porta]]
-a Tenta accesso automatico. Equivale all'opzione -l, ma
utilizza il nome dell'utente attualmente connesso.
-e Carattere escape per accesso prompt client Telnet.
-f Nome file per registrazione lato client
-l Specifica il nome utente con cui accedere al sistema remoto.
Richiede che il sistema remoto supporti l'opzione TELNET ENVIRON.
-t Specifica tipo terminale.
Tipi di terminale supportati sono solo vt100, vt52, ansi e vtnt.
host Specifica nome host o indirizzo IP del computer remoto a cui
connettersi.
porta Specifica numero porta o nome servizio.
per cui se sei su windows un bel file batch basta e avanza, se sei su Linux un bello script bash.
:O la famosa "connessione a tre vie" (three-way handshake) avviene per tutte le connessioni. E "connessione" è un concetto esclusivo del modulo TCP.
Lo so, ma non intendeva il 3-way handshake del TCP ;)
Teo@Unix
30-01-2010, 10:25
già difatti mi sembrava strana la domanda ... :D
ma di che handshake parlate?
A ho capito la negoziazione di telnet?
Ovvero il server fa le seguenti "domande":
1° pacchetto: (server)
Command: Do Authentication Option
Command: Will Echo
Command: Will Suppress Go Ahead
Command: Do New Environment Option
Command: Do Negotiate About Window Size
Command: Do Binary Transmission
Command: Will Binary Transmission
il client deve rispondere di conseguenza.... ad esempio:
2° pacchetto: (client)
Command: Will Authentication Option
3° pacchetto: (server)
Suboption Begin: Authentication Option
Auth Cmd: SEND (1)
Auth Type: NTLM (15)
...0 .0.. = Encrypt: Off (0)
.... 0... = Cred Fwd: Client will NOT forward auth creds
.... ..0. = How: One Way authentication
.... ...0 = Who: Mask client to server
Command: Suboption End
ecc..... continua per una dozzina di pacchetti...
e c'è solo per telnet, a livello di trasporto appunto. se scrivete un client dovete tenerne conto, cmq è abbastanza semplice...
gli altri servizi hanno i loro metodi a livello applicazione tipo non so, HTTP usa
GET / HTTP/1.1\r\n.....
... ecc....
ehm... mi sa che qualcosa non va come dovrebbe...
normalmente scrivo:
telnet login.edisu.pv.it
e compare:
LOGIN Authentication
Rete ISU (192.168.0.201)
Username:
e qui devo scrivere lo username. alla richiesta
Password:
dovrei scrivere la password...
scrivendo telnet -l miauserid login.edisu.pv.it compare:
LOGIN Authentication
Rete ISU (192.168.0.201)
Username:
ovvero lo stesso messaggio, come se non avessi immesso niente come username....
non so se sono io a sbagliare qualcosa, ma stando così le cose, il file batch è abbastanza inutile...
DjDiabolik
03-10-2010, 13:26
ho trovato un programmino che faceva al caso mio, molto semplice ma abbastanza pratico
Telnet Scripting Tool (Tst10)
Anche se un post vecchio segnalo che non funziona una cippa!
Anche se ho messo tutto correttamente il mio dispositivo telnet da sempre:
SifTeam Image for Dreambox dm600pvr
dm600pvr login: root
root
Password: m1cr0$0ft$uck$
Login incorrect
dm600pvr login:
La password è esatta........ quindi ditemi voi perchè succede tale cosa.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.