#!/bin/sh E=printf R=$($E \\r) for U do X(){ $E %s\\r\\n "GET /${Q#/} HTTP/1.0" "Host: $D" '' } Y(){ while IFS=$R read -r A B [ "$A" ] do $E %s\\n "$A" done>&2 echo>&2 cat } S="${U%%:*}" S="${S##*[!a-z0-9-]*}" [ "$S" ]&&U="${U#$S://}"||U="${U#//}" H="${U%%/*}" Q="${U#"$H"}" D="${H%:*}" [ "$H" = "${D:?}" ]&&P="${PORT:-80}"||P="${H##*:}" if (: &- then exec 3<>"/dev/tcp/$D/$P"&&X>&3&&Y<&3 exec 3>&- else X|/usr/bin/env nc -- "$D" "$P"|Y fi done