The page you are reading is part of a draft (v2.0) of the "No bullshit guide to math and physics."

The text has since gone through many edits and is now available in print and electronic format. The current edition of the book is v4.0, which is a substantial improvement in terms of content and language (I hired a professional editor) from the draft version.

I'm leaving the old wiki content up for the time being, but I highly engourage you to check out the finished book. You can check out an extended preview here (PDF, 106 pages, 5MB).


Scripting telnet HTTP requests

I recently needed to hit several production servers that lived behind a VIP. I had access to the servers directly but their behavior was controlled by the host that they were called with so if I used the machine name I was out of luck. Also, port numbers in the request would throw it off. So I needed to send http requests directly to the server and lie about the hostname I was using to access them.

Here is a script file that I run and pipe into telnet.

echo “open $1 $2” sleep 2 echo “GET $4 HTTP/1.0” echo “User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4” echo “Host: $3” echo echo sleep 2

lets put this in a file called getpage and then we run the following

./getpage tonycode.com 80 tonycode.com /| telnet

ok. what did we just do?

  getpage is sending commands on stdout and telnet is getting them via the pipe
      getpage 1st tells telnet to open a connection to tonycode.com ($1) port 80 ($2).
      getpage waits 2 seconds for the connection. Adjust as necessary.
      getpage sends the request. GET / HTTP/1.0 and sets the host ($3) to tonycode.com.
          Note $4 is the resource to fetch and we set it to /.
          I even threw in the user agent header for fun.
          Those 2 empty echo statements are necessary to tell the server this is the end of the request. 
      Finally getpage sleeps for 2 seconds to allow time for the response to come back. Leave out this line and you'll get nada. 

via: http://tonycode.com/wiki/index.php?title=Making_HTTP_requests_via_telnet

 
home about buy book