Vai al contenuto

Creare una connessione Telnet utilizzando una macro

Home Forum Terminali operatore (Weintek) Creare una connessione Telnet utilizzando una macro

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #35108
    Anonimo
    Ospite

    Salve, 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 🙂

    #36994
    Sergio Bertana
    Amministratore del forum

    Hai 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 caratteri

    StringCopy(“Admin”, Command[0])
    Command[5]=0x0D //Carriage return
    Command[6]=0x0A //Line feed

    OUTPORT(Command[0], “Free Protocol”, 10)
    end macro_command

    Naturalmente 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.

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Devi essere connesso per rispondere a questo topic.