diff --git a/README.md b/README.md index fa793c7..f41ac01 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ speedtest-cli-3 is written for use with Python 3 ## Usage $ speedtest-cli -h - usage: speedtest-cli [-h] [--share] [--simple] [--list] [--server SERVER] + usage: speedtest-cli [-h] [--share] [--simple] [--list] [--bytes] [--server SERVER] Command line interface for testing internet bandwidth using speedtest.net. -------------------------------------------------------------------------- @@ -23,4 +23,7 @@ speedtest-cli-3 is written for use with Python 3 results image --simple Suppress verbose output, only show basic information --list Display a list of speedtest.net servers sorted by distance - --server SERVER Specify a server ID to test against \ No newline at end of file + --bytes Display speeds in MBytes/s (instead of Mbit/s) + --ib Use IEC binary prefixes (MiB, etc) + http://en.wikipedia.org/wiki/Binary_prefix + --server SERVER Specify a server ID to test against diff --git a/speedtest-cli b/speedtest-cli index 1ef445d..696b70f 100755 --- a/speedtest-cli +++ b/speedtest-cli @@ -290,6 +290,8 @@ def speedtest(): help='Display a list of speedtest.net servers ' 'sorted by distance') parser.add_argument('--server', help='Specify a server ID to test against') + parser.add_argument('--bytes', action='store_true', help='Show speed in MB per second') + parser.add_argument('--ib', action='store_true', help='Use IEC binary prefixes (MiB, etc)') options = parser.parse_args() if isinstance(options, tuple): @@ -341,6 +343,15 @@ def speedtest(): else: print 'Ping: %(latency)s ms' % best + unit = 'bits' + size_divisor = 1000 + + if args.bytes: + unit = 'B' + if args.ib: + unit = 'i' + unit + size_divisor = 1024 + sizes = [350, 500, 750, 1000, 1500, 2000, 2500, 3000, 3500, 4000] urls = [] for size in sizes: @@ -352,9 +363,13 @@ def speedtest(): dlspeed = downloadSpeed(urls, args.simple) if not args.simple: print - print 'Download: %0.2f Mbit/s' % ((dlspeed / 1000 / 1000) * 8) - sizesizes = [int(.25 * 1000 * 1000), int(.5 * 1000 * 1000)] + dlspeed = dlspeed / size_divisor / size_divisor + if not args.bytes: + dlspeed = dlspeed * 8 + print 'Download: %0.2f M%s/s' % (dlspeed, unit) + + sizesizes = [int(.25 * size_divisor * size_divisor), int(.5 * size_divisor * size_divisor)] sizes = [] for size in sizesizes: for i in xrange(0, 25): @@ -364,8 +379,13 @@ def speedtest(): ulspeed = uploadSpeed(best['url'], sizes, args.simple) if not args.simple: print - print 'Upload: %0.2f Mbit/s' % ((ulspeed / 1000 / 1000) * 8) + ulspeed = ulspeed / size_divisor / size_divisor + if not args.bytes: + ulspeed = ulspeed * 8 + print 'Upload: %0.2f M%s/s' % (ulspeed, unit) + + # --ib option does not affect this part if args.share: dlspeedk = int(round((dlspeed / 1000) * 8, 0)) ping = int(round(best['latency'], 0)) diff --git a/speedtest-cli-3 b/speedtest-cli-3 index 4792a3b..2e297d9 100755 --- a/speedtest-cli-3 +++ b/speedtest-cli-3 @@ -272,6 +272,8 @@ def speedtest(): help='Display a list of speedtest.net servers ' 'sorted by distance') parser.add_argument('--server', help='Specify a server ID to test against') + parser.add_argument('--bytes', action='store_true', help='Show speed in MB per second') + parser.add_argument('--ib', action='store_true', help='Use IEC binary prefixes (MiB, etc)') args = parser.parse_args() if not args.simple: @@ -318,6 +320,15 @@ def speedtest(): else: print('Ping: %(latency)s ms' % best) + unit = 'bits' + size_divisor = 1000 + + if args.bytes: + unit = 'B' + if args.ib: + unit = 'i' + unit + size_divisor = 1024 + sizes = [350, 500, 750, 1000, 1500, 2000, 2500, 3000, 3500, 4000] urls = [] for size in sizes: @@ -329,9 +340,13 @@ def speedtest(): dlspeed = downloadSpeed(urls, args.simple) if not args.simple: print() - print('Download: %0.2f Mbit/s' % ((dlspeed / 1000 / 1000) * 8)) - sizesizes = [int(.25 * 1000 * 1000), int(.5 * 1000 * 1000)] + dlspeed = dlspeed / size_divisor / size_divisor + if not args.bytes: + dlspeed = dlspeed * 8 + print('Download: %0.2f M%s/s' % (dlspeed, unit)) + + sizesizes = [int(.25 * size_divisor * size_divisor), int(.5 * size_divisor * size_divisor)] sizes = [] for size in sizesizes: for i in range(0, 25): @@ -341,8 +356,13 @@ def speedtest(): ulspeed = uploadSpeed(best['url'], sizes, args.simple) if not args.simple: print() - print('Upload: %0.2f Mbit/s' % ((ulspeed / 1000 / 1000) * 8)) + ulspeed = ulspeed / size_divisor / size_divisor + if not args.bytes: + ulspeed = ulspeed * 8 + print('Upload: %0.2f M%s/s' % (ulspeed, unit)) + + # --ib option does not affect this part if args.share: dlspeedk = int(round((dlspeed / 1000) * 8, 0)) ping = int(round(best['latency'], 0))