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…)
3 risposte a “Client TCP o UDP con bash”
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.
Sulla mia Ubuntu (ultima versione con gli ultimi aggiornamenti) va: l’ho provata li’ prima di postare questo articolo.
va sostituendo l’ultima riga con: cat <&$fd