yyq
1/21/2015 - 6:09 PM

vpnlatency.py

#!/usr/bin/python

import subprocess

domain_url = 'vpnplease.com'
subdomains = ['tw1',
    'sg1', 'sg2',
    'jp1', 'jp2', 'jp3',
    'us1', 'us2', 'us3', 'us4', 'us5',
    'uk1',
    'hk1', 'hk2']

stats = []

for sd in subdomains:
    url = '%s.%s' % (sd, domain_url)
    try:
        ping = subprocess.check_output(
            ['ping', '-i', '0.1', '-c', '10', '-t', '1', url],
            stderr=subprocess.STDOUT)
        lines = ping.split('\n')
        rtt = lines[-2].split(' = ')[-1].split(' ')[0].split('/')[1]
        stats.append((sd, float(rtt)))
    except Exception, e:
        print "Failed in testing %s" % url
        print e.output

stats = sorted(stats, key=lambda t: t[1])
print '======================'
print 'URL\tavg rtt(ms)'
print '--------------------'
for s in stats:
    print '%s\t%f' % s
print '======================'