mirror of
				https://github.com/Ysurac/openmptcprouter-feeds.git
				synced 2025-03-09 15:40:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/sh
 | |
| # vim: set noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 :
 | |
| INTERFACE="$1"
 | |
| 
 | |
| 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 $HOST >/dev/null || echo
 | |
| else
 | |
| 	domain=$(echo $HOST | awk -F/ '{print $3}')
 | |
| 	hostip=$(dig +nocmd +noall +answer A $domain | grep -v CNAME | awk '{print $5}' | tr -d "\n")
 | |
| 	ipset add ss_rules_dst_bypass_all $hostip
 | |
| 	curl -4 --interface $INTERFACE $HOST >/dev/null || echo
 | |
| 	ipset del ss_rules_dst_bypass_all $hostip
 | |
| fi
 |