网络选择方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及数据访问领域,更具体而言,涉及一种网络选择方法、装置及系统。
【背景技术】
[0002]目前,客户端内部通常通过连接到某个固定的域名或IP地址对用户提供数据的访问(比如通过某个http请求获取文本内容、图片)。这种数据访问方式存在如下缺陷:
[0003]域名解析需要一定时间,导致数据访问的时间边长;
[0004]存在因DNS (Domain Name System,域名系统)劫持或DNS服务器配置错误导致无法解析域名的风险;
[0005]如果进行跨网段访问,会增加数据访问的耗时。
[0006]以上缺陷均不利于用户体验。
【发明内容】
[0007]为了解决现有技术所存在的缺陷,本发明实施方式提供一种网络选择方法、装置及系统,能够提高数据访问的效率和用户体验。
[0008]一方面,本发明实施方式提供了一种网络选择方法,包括:
[0009]从服务器获取IP地址列表,所述IP地址列表包含多个IP地址;
[0010]对所述IP地址列表中的每个IP地址进行测速,得到测速结果;
[0011]根据所述测速结果从所述IP地址列表中选取用于进行数据访问的IP地址。
[0012]可选地,在本发明实施例的一种实现方式中,所述从服务器获取IP地址列表,包括:向所述服务器发送http请求,以便所述服务器返回所述IP地址列表;接收所述服务器返回的所述IP地址列表;其中,所述IP地址列表中的IP地址与http请求发起端的IP地址属于相同的网络运营商,或具有相同的地域信息。
[0013]可选地,在本发明实施例的另一种实现方式中,所述对所述IP地址列表中的每个IP地址进行测速,得到测速结果,包括:测试并记录通过http请求从每个IP地址获取指定数据体的耗时;或,测试并记录通过http请求从每个IP地址获取指定数据体的耗时,然后根据每个IP地址对应的耗时对所述IP列表中的IP地址进行排序。
[0014]进一步可选地,所述根据所述测速结果从所述IP地址列表中选取用于进行数据访问的IP地址,包括:根据从每个IP地址获取指定数据体的耗时,选取耗时最短的IP地址作为用于进行数据访问的IP地址,或,根据对所述IP列表中的IP地址的排序,选取耗时最短的IP地址作为用于进行数据访问的IP地址;其中,如果选取的IP地址无法连接,则选取耗时第二短的IP地址作为用于进行数据访问的IP地址。
[0015]可选地,在本发明实施例的再一种实现方式中,所述方法还包括:存储所述测速结果,并在预设时间段内根据所述测速结果从所述IP地址列表中选取作为用于进行数据访问的IP地址。
[0016]第二方面,本发明实施例提供一种网络选择装置,包括:
[0017]列表获取模块,用于从服务器获取IP地址列表,所述IP地址列表包含多个IP地址;
[0018]测速模块,用于对所述IP地址列表中的每个IP地址进行测速,得到测速结果;
[0019]网络选择模块,用于根据所述测速结果从所述IP地址列表中选取用于进行数据访问的IP地址。
[0020]可选地,在本实施例的一种实现方式中,所述列表获取模块包括:发送模块,用于向所述服务器发送http请求,以便所述服务器返回所述IP地址列表;接收模块,用于接收所述服务器返回的所述IP地址列表;其中,所述IP地址列表中的IP地址与http请求发起端的IP地址属于相同的网络运营商,或具有相同的地域信息。
[0021]可选地,在本实施例的又一种实现方式中,所述测速模块具体用于,测试并记录通过http请求从每个IP地址获取指定数据体的耗时;或,测试并记录通过http请求从每个IP地址获取指定数据体的耗时,然后根据每个IP地址对应的耗时对所述IP列表中的IP地址进彳T排序。
[0022]进一步可选地,所述网络选择模块具体用于,根据从每个IP地址获取指定数据体的耗时,选取耗时最短的IP地址作为用于进行数据访问的IP地址,或,根据对所述IP列表中的IP地址的排序,选取耗时最短的IP地址作为用于进行数据访问的IP地址;其中,如果选取的IP地址无法连接,则选取耗时第二短的IP地址作为用于进行数据访问的IP地址。
[0023]可选地,在本实施例的再一种实现方式中,所述装置还包括:存储模块,用于存储所述测速结果,以便所述网络选择模块在预设时间段内根据所述测速结果从所述IP地址列表中选取IP地址作为用于进行数据访问的IP地址。
[0024]第三方面,本发明实施例提供一种网络选择系统,其包括根据本发明实施例第二方面或其实现方式的网络选择装置,和服务器;所述服务器用于向所述网络选择装置发送IP地址列表,所述IP地址列表包含多个IP地址。
[0025]采用本发明实施例提供的网络选择方法、装置和系统,通过获取IP地址列表、测速等技术手段,不仅能有效解决因DNS劫持和跨网段访问造成的数据无法加载或加载慢的问题,还能确保寻找到具有最优/更优连接速度的IP地址进行数据访问,提高用户体验。
【附图说明】
[0026]图1是根据本发明实施例的一种网络选择方法的流程示意图;
[0027]图2是根据本发明实施例的一种网络选择装置的方块示意图;
[0028]图3是根据本发明实施例的一种网络选择系统的方块示意图。
【具体实施方式】
[0029]以下结合附图和【具体实施方式】对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或步骤可以按各种不同配置进行组合和设计。
[0030]图1是根据本发明实施例的一种网络选择方法的流程示意图,参照图1,所述方法包括:
[0031]10:从服务器获取IP地址列表。IP地址列表包含多个IP地址,更具体而言,包含多个用于提供数据服务的IP地址。
[0032]可选地,在本实施例的一种实现方式中,处理10可以通过以下方式实现:
[0033]向服务器发送http请求,以便服务器返回IP地址列表;接收所述服务器返回的所述IP地址列表;其中,IP地址列表中的IP地址与http请求发起端(例如,客户端)的IP地址属于相同的网络运营商(例如,均属于联通或电信),或具有相同的地域信息(例如,同属于北京区域、河北区域等)。
[0034]也就是说,在本实现方式中,服务器可以根据http请求发起端的IP地址向http请求发起端推荐IP地址列表。例如,服务器可以预先按照网络运营商的类别或按照地域类别存储大量IP地址,以便根据http请求发起端的IP地址进行推荐。
[0035]12:对IP地址列表中的每个IP地址进行测速,得到测速结果。
[0036]可选地,在本实施例的一种实现方式中,处理12包括:测试并记录通过http请求从每个IP地址获取指定数据体的耗时。此时,每个IP地址及其对应的耗时即所述测速结果。在本实施例中,数据体是指一段固定内容的字节流(该字节流可以是已知的,以便后续进行md5校验),例如,可以是一个固定内容的小图片。
[0037]或者,处理12包括:测试并记录通过http请求从每个IP地址获取指定数据体的耗时;根据每个IP地址对应的耗时对IP列表中的IP地址进行排序。此时,排序结果即所述测速结果,当然,还可以根据排序结果截取前面的预设数目的IP地址作为测速结果。
[0038]也就是说,测速结果可以是各个IP地址及其对应的耗时,也可以是根据各个IP地址所对应的耗时进行处理得到的结果,例如排序之后的结果、根据排序结果截取的预设数目的IP地址等。
[0039]可选地,在本实施例的一种实现方式中,预先在每个IP地址部署所述指定数据体,即,在每个IP地址部署相同的数据体。
[0040]可选地,在本实施例的一种实现方式中,针对单个IP地址,测速成功需同时满足以下条件:使用该IP地址可以获取到预先部署的数据体;数据校验(md5)成功;获取该数据体的时间不超过设定阈值。
[0041]可选地,在处理12中,为了提高处理效率,可以采用多线程的方式同时对IP地址列表中的IP地址进行测速。
[0042]14:根据测速结果从IP地址列表中选取用于进行数据访问的IP地址。
[0043]可选地,在本实施例的一种实现方式中,处理14包括:根据从每个IP地址获取指定数据体的耗时,选取耗时最短的IP地址作为用于进行数据访问的IP地址。或者,处理14包括:根据对IP列表中的IP地址的排序,选取耗时最短的IP地址(例如,如果按耗时由短到长的顺序排序,则排在首位的IP地址即耗时最短的IP地址)作为用于进行数据访问的IP地址。
[0044]其中,如果选取的IP地址无法连接,例如,当根据选取的IP地址进行数据访问时发现连接不成功,则选取耗时第二短的IP地址作为用于进行数据访问的IP地址,依次类推。
[0045]采用本实施例提供的网络选择方法,不仅能有效解决因DNS劫持和跨网段访问造成的数据无法加载或加载慢的问题,还能确保寻找到具有最优/更优连接速度的IP地址进行数据访问,提高用户体验。
[0046]本领域技术人员应当理解,本实施例提供的方法可以应用于客户端,以便客户端根据选取的IP地址进行数据访问。
[0047]可选地,在本实施例的一种实现方式中,存储(例如,以缓存的形式存储)处理12得到的测速结