mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-12 18:41:51 +00:00
Add a speedtest using speedtest.net servers and use multiples sources for omr-test-speed
This commit is contained in:
parent
3b2c2ac9ea
commit
3b17a96c9b
2 changed files with 59 additions and 5 deletions
35
openmptcprouter/files/bin/omr-speedtest
Executable file
35
openmptcprouter/files/bin/omr-speedtest
Executable file
|
@ -0,0 +1,35 @@
|
|||
#!/bin/sh
|
||||
INTERFACE="$1"
|
||||
echo "Download server list..."
|
||||
wget -q -O /tmp/speedtest.lst http://c.speedtest.net/speedtest-servers-static.php
|
||||
bestuploadurl=""
|
||||
besthost=""
|
||||
bestpinghost=""
|
||||
bestping="999"
|
||||
echo "Select best server..."
|
||||
while read line; do
|
||||
if [ "$(echo $line | grep url)" != "" ]; then
|
||||
pinghost=$(echo $line | awk -F'"' '{print $18}' | cut -d: -f1)
|
||||
host=$(echo $line | awk -F'"' '{print $18}')
|
||||
uploadurl=$(echo $line | awk -F'"' '{print $2}')
|
||||
ping=$(ping -c1 -w1 $pinghost | cut -d "/" -s -f5 | cut -d "." -f1)
|
||||
echo -n "."
|
||||
if [ -n "$ping" ] && [ "$ping" -lt "$bestping" ]; then
|
||||
bestping=$ping
|
||||
bestuploadurl=$uploadurl
|
||||
besthost=$host
|
||||
bestpinghost=$pinghost
|
||||
fi
|
||||
fi
|
||||
done < /tmp/speedtest.lst
|
||||
echo
|
||||
echo "Done: url: $bestuploadurl - host: $besthost - ping: $bestping"
|
||||
echo "Download test:"
|
||||
if [ -z "$INTERFACE" ]; then
|
||||
curl -4 $besthost/speedtest/random7000x7000.jpg >/dev/null || echo
|
||||
else
|
||||
hostip=$(dig +short $bestpinghost | tr -d "\n")
|
||||
ipset add ss_rules_dst_bypass_all $hostip
|
||||
curl -4 --interface $INTERFACE $besthost/speedtest/random7000x7000.jpg >/dev/null || echo
|
||||
ipset del ss_rules_dst_bypass_all $hostip
|
||||
fi
|
|
@ -1,15 +1,34 @@
|
|||
#!/bin/sh
|
||||
# vim: set noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 :
|
||||
|
||||
INTERFACE="$1"
|
||||
HOST="proof.ovh.net"
|
||||
|
||||
echo "Select best test server..."
|
||||
HOSTLST="http://speedtest.frankfurt.linode.com/garbage.php?ckSize=10000 http://speedtest.tokyo2.linode.com/garbage.php?ckSize=10000 http://speedtest.singapore.linode.com/garbage.php?ckSize=10000 http://speedtest.newark.linode.com/garbage.php?ckSize=10000 http://speedtest.atlanta.linode.com/garbage.php?ckSize=10000 http://speedtest.dallas.linode.com/garbage.php?ckSize=10000 http://speedtest.fremont.linode.com/garbage.php?ckSize=10000 http://speedtest.tele2.net/1000GB.zip http://www.ovh.net/files/10Gb.dat https://speed.hetzner.de/10GB.bin http://ipv4.bouygues.testdebit.info/10G.iso http://par.download.datapacket.com/10000mb.bin http://nyc.download.datapacket.com/10000mb.bin http://ams.download.datapacket.com/10000mb.bin http://fra.download.datapacket.com/10000mb.bin http://lon.download.datapacket.com/10000mb.bin http://mad.download.datapacket.com/10000mb.bin http://prg.download.datapacket.com/10000mb.bin http://sto.download.datapacket.com/10000mb.bin http://vie.download.datapacket.com/10000mb.bin http://war.download.datapacket.com/10000mb.bin http://atl.download.datapacket.com/10000mb.bin http://chi.download.datapacket.com/10000mb.bin http://lax.download.datapacket.com/10000mb.bin http://mia.download.datapacket.com/10000mb.bin http://nyc.download.datapacket.com/10000mb.bin"
|
||||
bestping="999"
|
||||
for pinghost in $HOSTLST; do
|
||||
domain=$(echo $pinghost | awk -F/ '{print $3}')
|
||||
if [ -z "$INTERFACE" ]; then
|
||||
ping=$(ping -c1 -w2 $domain | cut -d "/" -s -f5 | cut -d "." -f1)
|
||||
else
|
||||
ping=$(ping -c1 -w2 -I $INTERFACE -B $domain | cut -d "/" -s -f5 | cut -d "." -f1)
|
||||
fi
|
||||
echo "host: $domain - ping: $ping"
|
||||
if [ -n "$ping" ] && [ "$ping" -lt "$bestping" ]; then
|
||||
bestping=$ping
|
||||
HOST=$pinghost
|
||||
fi
|
||||
done
|
||||
|
||||
[ -z "$HOST" ] && HOST="http://proof.ovh.net/files/10Gio.dat"
|
||||
|
||||
echo "Best server is $HOST, running test:"
|
||||
trap : HUP INT TERM
|
||||
if [ -z "$INTERFACE" ]; then
|
||||
curl -4 http://$HOST/files/10Gio.dat >/dev/null || echo
|
||||
curl -4 $HOST >/dev/null || echo
|
||||
else
|
||||
hostip=$(dig +short A $HOST | tr -d "\n")
|
||||
domain=$(echo $HOST | awk -F/ '{print $3}')
|
||||
hostip=$(dig +short A $domain | tr -d "\n")
|
||||
ipset add ss_rules_dst_bypass_all $hostip
|
||||
curl -4 --interface $INTERFACE http://$HOST/files/10Gio.dat >/dev/null || echo
|
||||
curl -4 $HOST >/dev/null || echo
|
||||
ipset del ss_rules_dst_bypass_all $hostip
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue