Es muy habitual, cuando se escriben scripts en Bash, recurrir a herramientas como "netcat" para realizar comunicaciones de red. Sin embargo, aunque no es muy conocido, Bash soporta sockets.
Veamos como conectarnos, por ejemplo, a google.
Abrimos el socket y le asociamos el descriptor 3. Recordemos que 0, 1 y 2 se usan habitualmente para la entrada y salida estándard y para la salida de error.
$ exec 3<>/dev/tcp/www.google.com/80
A continuación, enviamos un mensaje por el socket:
$ echo "GET /" >&3
Y finalmente, leemos la respuesta del servidor:
$ cat <&3 HTTP/1.0 302 Found Location: http://www.google.es/ Cache-Control: private Content-Type: text/html; charset=UTF-8 Set-Cookie: PREF=ID=a38d7ed8770f70cb:FF=0:TM=1327418982:LM=1327418982:S=0tgHEV7GxJaC6Wl7; expires=Thu, 23-Jan-2014 15:29:42 GMT; path=/; domain=.google.com Date: Tue, 24 Jan 2012 15:29:42 GMT Server: gws Content-Length: 218 X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN ...
No hay comentarios:
Publicar un comentario