# poor mans http getter when curl is not installed (works for http only) # httpget http://foo.com/blah httpget() { local url="$1" local rest="${url#http://}" # strip scheme local hostport="${rest%%/*}" # host[:port] local path="/" [ "$hostport" != "$rest" ] && path="/${rest#*/}" # path if any local host="${hostport%%:*}" local port="${hostport##*:}" [ "$port" = "$host" ] && port=80 # default port if none given exec 3<>"/dev/tcp/$host/$port" || { echo "connect failed: $host:$port" >&2; return 1; } printf 'GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n' "$path" "$host" >&3 cat <&3 exec 3>&- } # poor mans "check if host is reachable or not" (hangs if not reachable) (exec 3<>/dev/tcp/whatever.hostname.com/443) && echo "OPEN" || echo "CLOSED/unreachable"