| #!/bin/bash | |
| nethandle=0 | |
| readonly TEST_HOST="connectivitycheck.gstatic.com" | |
| readonly TEST_PATH="/generate_204" | |
| readonly PREFIX=">>>" | |
| function getUrls() { | |
| if [ ! -z $(echo "$1" | sed -e 's/[^:]//g') ]; then | |
| echo "http://[$1]$TEST_PATH" | |
| echo "http://[$1]:80$TEST_PATH" | |
| else | |
| echo "http://$1$TEST_PATH" | |
| echo "http://$1:80$TEST_PATH" | |
| fi | |
| } | |
| function toHex() { | |
| readonly local hexValue=$(bc -q 2>/dev/null << EOT | |
| obase=16 | |
| $1 | |
| EOT | |
| ) | |
| if [ ! -z "$hexValue" ]; then | |
| echo "0x$hexValue" | |
| fi | |
| } | |
| if [ ! -z "$1" ]; then | |
| nethandle="$1" | |
| fi | |
| echo "$PREFIX Using nethandle $nethandle ($(toHex $nethandle))" | |
| echo "" | |
| readonly IPADDRESSES=$( | |
| adb shell /system/bin/dnschk --nethandle $nethandle $TEST_HOST | | |
| sed -e 's/#.*//' -e '/^$/d') | |
| for host in $TEST_HOST $IPADDRESSES; do | |
| urls=$(getUrls $host) | |
| for url in $urls; do | |
| echo "$PREFIX Checking $url" >&2 | |
| adb shell /system/bin/httpurl --nethandle $nethandle "$url" | |
| done | |
| done |