Using bash Net-Redirection
Problem
You need to send or receive very simple network traffic but you do not have a tool such as netcat installed.
Solution
If you have bash version 2.04+ compiled with
--enable-net-redirections (it isn’t
compiled this way in Debian and derivatives), you can use
bash itself. The following example is also used in
Finding My IP Address:
$ exec 3<> /dev/tcp/www.ippages.com/80 $ echo -e "GET /simple/?se=1 HTTP/1.0\n" >&3 $ cat <&3 HTTP/1.1 200 OK Date: Tue, 28 Nov 2006 08:13:08 GMT Server: Apache/2.0.52 (Red Hat) X-Powered-By: PHP/4.3.9 Set-Cookie: smipcomID=6670614; expires=Sun, 27-Nov-2011 08:13:09 GMT; path=/ Pragma: no-cache Cache-Control: no-cache, must-revalidate Content-Length: 125 Connection: close Content-Type: text/plain; charset=ISO-8859-1 72.NN.NN.225 (US-United States) http://www..com Tue, 28 Nov 2006 08:13:09 UTC/GMT flagged User Agent - reduced functionality
Warning
As noted, this recipe will probably not work under Debian and
derivatives such as Ubuntu since they expressly do not compile
bash with --enable-net-redirections.
Discussion
As noted in Redirecting Output for the Life of a Script, it is possible
to use exec to permanently redirect
file handles within the current shell session, so the
first command sets up input and output on file handle 3. The second line sends a trivial command to a path on the web server defined in the first command. Note that the user agent will appear as “-” on the web server side, which is what is causing the “flagged ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access