diff options
Diffstat (limited to 'contrib/or-tools/check-tor')
-rwxr-xr-x | contrib/or-tools/check-tor | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/contrib/or-tools/check-tor b/contrib/or-tools/check-tor new file mode 100755 index 000000000..e981a35fc --- /dev/null +++ b/contrib/or-tools/check-tor @@ -0,0 +1,41 @@ +#!/bin/sh + +## Originally written by Peter Palfrader. + +## This script lets you quickly check if a given router (by nickname) +## will let you do a TLS handshake, or will let you download a directory. + +## Usage: check-tor nickname + +#set -x + +router="$1" +dirserver="http://belegost.seul.org:80/tor/" + +lines=$( wget -q $dirserver --proxy=off -O - | grep -A5 '^router '"$router"' ' ) +line=$( echo "$lines" | head -n1 ) + +if [ -z "$line" ]; then + echo "Not found" >&2 + exit 1 +fi + +echo "$lines" +echo + +ipor=$( echo "$line" | awk '{printf "%s:%s", $3, $4}' ) + +op=$( echo "$line" | awk '{printf $6}' ) +ipop=$( echo "$line" | awk '{printf "%s:%s", $3, $6}' ) + +echo +echo ">>" openssl s_client -connect "$ipor" +timeout 5 openssl s_client -connect "$ipor" < /dev/null +if [ "$op" != "0" ]; then + echo + echo ">>" wget --proxy=off -O - http://$ipop/tor/ + timeout 5 wget --proxy=off -O - http://$ipop/tor/ | head -n3 +fi + +echo +echo -n "$router "; echo "$lines" | grep 'fingerprint' | sed -e 's/^opt //' -e 's/^fingerprint //'; |