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…)

Autore: Luigi Rosa

Consulente IT, sviluppatore, SysAdmin, cazzaro, e, ovviamente, geek.

3 pensieri riguardo “Client TCP o UDP con bash”

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

Spazio per un commento