Attempt a Mozilla/5.0 compatible user-agent string
This commit is contained in:
parent
075cfda9cf
commit
d1be67be48
|
@ -22,12 +22,13 @@ import math
|
|||
import signal
|
||||
import socket
|
||||
import timeit
|
||||
import platform
|
||||
import threading
|
||||
|
||||
__version__ = '0.3.3a'
|
||||
|
||||
# Some global variables we use
|
||||
user_agent = 'speedtest-cli/%s' % __version__
|
||||
user_agent = None
|
||||
source = None
|
||||
shutdown_event = None
|
||||
scheme = 'http'
|
||||
|
@ -184,6 +185,24 @@ def distance(origin, destination):
|
|||
return d
|
||||
|
||||
|
||||
def build_user_agent():
|
||||
"""Build a Mozilla/5.0 compatible User-Agent string"""
|
||||
|
||||
global user_agent
|
||||
if user_agent:
|
||||
return user_agent
|
||||
|
||||
ua_tuple = (
|
||||
'Mozilla/5.0',
|
||||
'(%s; U; %s; en-us)' % (platform.system(), platform.architecture()[0]),
|
||||
'Python/%s' % platform.python_version(),
|
||||
'(KHTML, like Gecko)',
|
||||
'speedtest-cli/%s' % __version__
|
||||
)
|
||||
user_agent = ' '.join(ua_tuple)
|
||||
return user_agent
|
||||
|
||||
|
||||
def build_request(url, data=None, headers={}):
|
||||
"""Build a urllib2 request object
|
||||
|
||||
|
@ -196,7 +215,7 @@ def build_request(url, data=None, headers={}):
|
|||
else:
|
||||
schemed_url = url
|
||||
|
||||
headers['User-Agent'] = user_agent
|
||||
headers['User-Agent'] = build_user_agent()
|
||||
return Request(schemed_url, data=data, headers=headers)
|
||||
|
||||
|
||||
|
@ -585,6 +604,9 @@ def speedtest():
|
|||
|
||||
socket.setdefaulttimeout(args.timeout)
|
||||
|
||||
# Pre-cache the user agent string
|
||||
build_user_agent()
|
||||
|
||||
# If specified bind to a specific IP address
|
||||
if args.source:
|
||||
source = args.source
|
||||
|
|
Loading…
Reference in New Issue