Client TCP o UDP con bash

        exec {fd}<>"/dev/tcp/siamogeek.com/http"
        # scrittura nel socket
        printf "GET / HTTP/1.0\r\n" >&$fd
        printf "\r\n" >&$fd
        # lettura "until EOF" dal socket
        cat &-

Questo breve script per bash permette di scrivere e leggere dei dati da un socket TCP o UDP senza dipendere dalla presenza di altri programmi.

Il tipo di protocollo, l’host e la porta sono specificati nella prima riga dello script; {fd} serve per dire a bash di aprire il primo file descriptor disponibile.

La parte di scrittura è conforme allo standard http e deve essere modificata secondo le necessità. (via behind the wall…)


Pubblicato

in

da

Commenti

3 risposte a “Client TCP o UDP con bash”

  1. Avatar Fabrizio Vettore

    Interessante alternativa ad altri strumenti tipo netcat e wget che potrebbero non essere installati.

    Ma dipende molto dalla distro.
    Su ubuntu non va: cannot create /dev/tcp/siamogeek.com/http: Directory nonexistent

    Su CentOS funziona se invece di {fd} si indica un file descriptor.

    1. Avatar Luigi Rosa

      Sulla mia Ubuntu (ultima versione con gli ultimi aggiornamenti) va: l’ho provata li’ prima di postare questo articolo.

      1. Avatar Fabrizio Vettore

        va sostituendo l’ultima riga con: cat <&$fd

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *