Home › Forum › Terminali operatore (Weintek) › Creare una connessione Telnet utilizzando una macro
- Questo topic ha 1 risposta, 1 partecipante ed รจ stato aggiornato l'ultima volta 14 anni, 11 mesi fa da
Sergio Bertana.
-
AutorePost
-
Ottobre 3, 2011 alle 6:05 pm #35108
Anonimo
OspiteSalve, ho un terminale operatore weintek 8050i ed ho l’esigenza di aprire una connessione Telnet o comunque TCP/IP verso un server in ascolto sulla porta 23. Nello specifico vorrei creare una macro di connessione verso un indirizzo tcp/ip interno (del tipo 192.168.x.x) per aprire una semplice connessione e passargli stringe di comando da terminale come:
admin (INVIO)
password (INVIO)L’operazione di per se sembra banale ma non sono riuscito a trovare alcun protocollo in grado di farlo. Ho provato settando il Free Protocol ma non riesco a passargli le stringhe. La macro che ho creato è:
macro_command main()
char PRINT[200]
FILL(PRINT[0], 0, 200) // Azzero tutti i caratteri// Costruzione stringa di invio
PRINT[0] =’1′
PRINT[1] =’9′
PRINT[2] =’2′
PRINT[3] =’.’
PRINT[4] =’1′
PRINT[5] =’6′
PRINT[6] =’8′
PRINT[7] =’.’
PRINT[8] =’1′
PRINT[9] =’.’
PRINT[11] =’1′
PRINT[12] =’ ‘
PRINT[13] =’C’
PRINT[14] =’r’
PRINT[15] =’L’
PRINT[16] =’f’
PRINT[17] =’a’
PRINT[18] =’d’
PRINT[19] =’m’
PRINT[20] =’i’
PRINT[21] =’n’
PRINT[22] =’C’
PRINT[23] =’r’
PRINT[24] =’L’
PRINT[25] =’f’
OUTPORT(PRINT[0], “Free Protocol”, 100)
end macro_command
Dal pannello dei log del teminale telnet server sembra che la connessione avvenga ma non gli passa alcun parametro…. sto impazzendo per una cosa probabilmente banale ๐Ottobre 4, 2011 alle 6:46 am #36994Sergio Bertana
Amministratore del forumHai fatto un po di confusione, non capisco perchè hai definito l’indirizzo IP nella stringa. L’indirizzo IP viene impostato nella definizione del protocollo (Screenshot).
Poi è corretto il modo di definire la stringa, ma ti consiglio di utilizzare la funzione StringCopy che permette di scrivere la stringa, anzichè ogni singolo carattere. Ricorda che il carriage return ed il line feed si indicano come <CR> e <LF> ma in realtà sono due codici ascii 0x0D e 0x0E, quindi devi definirli come singolo carattere. Ecco come potrebbe essere scritta la tua macro.
macro_command main()
char Command[10]
FILL(Command[0], 0, 10) // Azzero tutti i caratteriStringCopy(“Admin”, Command[0])
Command[5]=0x0D //Carriage return
Command[6]=0x0A //Line feedOUTPORT(Command[0], “Free Protocol”, 10)
end macro_commandNaturalmente questo è solo un punto di partenza, magari dopo l’invio di un comando devi attendere una risposta prima di inviare un’altro comando, quindi devi inserire un INPORT, dai una occhiata a questo post. Per testare il funzionamento della macro puoi utilizzare Toolly, che impostato come server TCP/IP permette di accettare connessioni in ingresso e visualizzare i caratteri ricevuti.
Attenzione! per il test ricordati di utilizzare porte libere sul PC e magari disabilita il firewall.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.