一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

代理网络请求的方法、装置、设备及存储介质与流程

2022-07-13 17:43:23 来源:中国专利 TAG:


1.本技术实施例涉及计算机技术领域,特别涉及一种代理网络请求的方法、装置、设备及存储介质。


背景技术:

2.车机是运行在车辆上的车载设备,是一个定制化的终端系统。由于该终端系统处于专网环境,网络访问有限制,因此,该终端系统只能访问白名单内的ip(internet protocol,网际互联协议)地址。由于白名单具有风险高、新增白名单周期长、维护成本较高的问题。面对这种情况,可以通过该终端系统的前置机代理网络请求。
3.在相关技术中,一种方案是通过proxydroid(代理机器人)将终端系统发送的网络请求拦截转发到该终端系统的前置机,然后通过该前置机代理网络请求。另一种方案是通过vpn(virtual private network,虚拟专用网络)将终端系统发送的网络请求拦截转发到该终端系统的前置机,然后通过该前置机代理网络请求。
4.以上两种方案均在拦截网络请求阶段需要终端系统特定能力的支持。proxydroid代理方案需要root(根)权限,但部分终端系统无法开放root权限。vpn方案依赖终端系统内置vpn模块,并且要安装tun(点对点设备)驱动,目前部分终端系统无法满足以上要求。因此,以上两种方案局限性较大,降低了代理网络请求的可靠性。


技术实现要素:

5.本技术实施例提供了一种代理网络请求的方法、装置、设备及存储介质,可用于解决相关技术中的问题。所述技术方案如下:
6.一方面,本技术实施例提供了一种代理网络请求的方法,所述方法包括:
7.响应于终端系统发送dns(domain name system,域名系统)请求,基于dns-hook(域名系统-钩子)获取所述dns请求对应的ip(网际互联协议)地址;
8.基于传输层采用的协议-钩子hook(协议-钩子),向所述ip地址对应的第一目标服务器发送所述网络请求;
9.接收所述第一目标服务器发送的网络请求结果。
10.在一种可能的实现方式中,所述基于dns-hook获取所述dns请求对应的ip地址,包括:
11.基于所述dns-hook发送所述dns请求至第二目标服务器,所述第二目标服务器用于解析所述dns请求得到对应的ip地址;
12.基于所述dns-hook获取所述第二目标服务器返回的所述ip地址。
13.在一种可能的实现方式中,所述基于传输层采用的协议-钩子hook,向所述ip地址对应的第一目标服务器发送所述网络请求,包括:
14.响应于所述网络请求在传输层采用tcp(transmission control protocol,传输控制协议),基于所述tcp-hook(传输控制协议-钩子)向所述ip地址对应的第一目标服务器
hook获取所述dns请求对应的网际互联协议ip地址;
36.发送模块,用于基于传输层采用的协议-钩子hook,向所述ip地址对应的第一目标服务器发送所述网络请求;
37.接收模块,用于接收所述第一目标服务器发送的网络请求结果。
38.在一种可能的实施方式中,获取模块,用于基于所述dns-hook发送所述dns请求至第二目标服务器,所述第二目标服务器用于解析所述dns请求得到对应的ip地址;基于所述dns-hook获取所述第二目标服务器返回的所述ip地址。
39.在一种可能的实施方式中,发送模块,用于响应于所述网络请求在传输层采用传输控制协议tcp,基于所述tcp-hook向所述ip地址对应的第一目标服务器发送所述网络请求,所述终端系统与所述第一目标服务器通过所述tcp-hook相连接。
40.在一种可能的实施方式中,所述终端系统基于所述tcp-hook与第一前置机代理服务相连接,所述第一前置机代理服务与所述第一目标服务器相连接。
41.在一种可能的实施方式中,发送模块,用于响应于所述网络请求在传输层采用用户数据报协议udp,基于第一udp-hook向所述ip地址对应的第一目标服务器发送所述网络请求;
42.接收模块,用于基于第二udp-hook接收所述第一目标服务器发送的所述网络请求结果。
43.在一种可能的实施方式中,获取模块,用于基于所述dns-hook封装所述dns请求为第一数据包;基于所述dns-hook发送所述第一数据包至所述第二目标服务器。
44.在一种可能的实施方式中,获取模块,用于基于所述dns-hook接收所述第二目标服务器返回的第二数据包,所述第二数据包中包括所述dns请求对应的响应结果数据;基于所述dns-hook解析所述第二数据包得到所述ip地址。
45.在一种可能的实施方式中,发送模块,用于基于所述第一udp-hook封装所述网络请求得到第三数据包,基于所述第一udp-hook将所述第三数据包发送至所述第一目标服务器;
46.接收模块,用于基于所述第二udp-hook对所述第一目标服务器通过第二前置机代理服务发送的第四数据包进行解析,得到网络请求结果,所述第四数据包为所述第三数据包对应的网络请求结果。
47.在一种可能的实施方式中,发送模块,用于基于所述第一udp-hook将所述ip地址与所述网络请求对应的数据进行封装与加密得到第五数据包,基于所述第一udp-hook将所述第五数据包发送至所述第一目标服务器;
48.接收模块,用于基于所述第二udp-hook对所述第一目标服务器通过第三前置机代理服务发送的第六数据包进行解析与解密,得到所述网络请求结果,所述第六数据包为所述第五数据包对应的网络请求结果。
49.另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述计算机设备实现上述任一所述的代理网络请求的方法。
50.另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现
上述任一所述的代理网络请求的方法。
51.另一方面,还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行上述任一所述的代理网络请求方法。
52.本技术实施例提供的技术方案至少带来如下有益效果:
53.本技术实施例提供的技术方案在向第一目标服务器发送网络请求时,可以先基于dns-hook使任一终端系统获取第一目标服务器对应的ip地址,然后再基于传输层采用的协议-钩子hook使任一终端系统向第一目标服务器发送网络请求。上述方案基于dns-hook与传输层采用的协议-钩子hook来代理网络请求,不需要终端系统特定能力的支持,提高了代理网络请求的可靠性。
附图说明
54.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
55.图1是本技术实施例提供的一种实施环境的示意图;
56.图2是本技术实施例提供的一种代理网络请求的方法流程图;
57.图3是本技术实施例提供的一种获取ip地址的方法流程图;
58.图4是本技术实施例提供的另一种代理网络请求的方法流程图;
59.图5是本技术实施例提供的另一种代理网络请求的方法流程图;
60.图6是本技术实施例提供的一种代理网络请求的装置示意图;
61.图7是本技术实施例提供的一种计算机设备的结构示意图;
62.图8是本技术实施例提供的另一种计算机设备的结构示意图。
具体实施方式
63.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
64.需要说明的是,本技术的说明书和权利要求书中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
65.针对车机(也称车载终端或车载设备)等定制化处于专网环境的终端系统,由于网络访问有限制,本技术实施例提供了一种代理网络请求的方法,该方法探索出一个不依赖系统能力、root权限等通用专网解决方案,突破车机业务场景下的专网限制,保障了车机业务后续不受专网限制。例如,本技术实施例提供的方法通过hook系统原生(native)底层网
络传输的api,来将应用(app)的请求拦截,转发到内网代理服务,从而解决专网环境带来的网络问题。
66.请参考图1,其示出了本技术实施例提供的方法实施环境的示意图。该实施环境可以包括:终端系统11和服务器12。
67.其中,终端系统11可应用本技术实施例提供的方法将网络请求发送至服务器12。服务器12可以对该网络请求进行响应得到网络请求结果,然后将该网络请求结果发送至终端系统11。终端系统11可以接收服务器12发送的网络请求结果。
68.可选地,终端系统11可以是任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如车载终端(也称车机)、pc(personal computer,个人计算机)、手机、智能手机、pda(personal digital assistant,个人数字助手)、可穿戴设备、ppc(pocket pc,掌上电脑)、平板电脑、智能车机、智能电视、智能音箱等。服务器12可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。终端系统11与服务器12通过有线或无线网络建立通信连接。
69.本领域技术人员应能理解上述终端系统11与服务器12仅为举例,其他现有的或今后可能出现的终端或服务器如可适用于本技术,也应包含在本技术保护范围以内,并在此以引用方式包含于此。
70.基于上述图1所示的实施环境,本技术实施例提供一种代理网络请求的方法,以该方法应用于终端系统为例。如图2所示,本技术实施例提供的方法可以包括如下步骤201-步骤203。
71.步骤201,响应于终端系统发送dns请求,基于dns-hook获取dns请求对应的ip地址。
72.在一种可能的实施方式中,当终端系统有获取数据等需求,则需要发送网络请求至对应的第一目标服务器,该第一目标服务器可以对该网络请求进行响应并将对应的网络请求结果发送至该终端系统。当终端系统仅获取第一目标服务器对应的dns,而未获取第一目标服务器对应的ip地址时,终端系统需要先发送一个dns请求至第二目标服务器,基于第二目标服务器获取该dns对应的ip地址,再向该ip地址对应的第一目标服务器发送网络请求。其中,终端系统可以基于dns-hook获取dns请求对应的ip地址。
73.可选地,基于dns-hook获取dns请求对应的ip地址,包括:基于dns-hook发送dns请求至第二目标服务器,第二目标服务器用于解析dns请求得到对应的ip地址;基于dns-hook获取第二目标服务器返回的ip地址。
74.可选地,基于dns-hook发送dns请求至第二目标服务器,包括:基于dns-hook封装dns请求为第一数据包;基于dns-hook发送第一数据包至第二目标服务器。
75.本技术实施例不对dns-hook的位置进行限定,例如可以将dns-hook设置在终端系统对dns请求进行解析的位置。
76.本技术实施例不对dns-hook封装dns请求的方式进行限定,例如,可以采用udp对dns请求进行封装,得到第一数据包。
77.本技术实施例不对基于dns-hook发送第一数据包的方式进行限定,例如可以基于dns-hook将第一数据包发送至终端系统的前置机,再由该前置机将第一数据包发送至第二
目标服务器。本技术实施例也不对该前置机发送第一数据包的方式进行限定,例如,该前置机可以使用dnsmasq(用于转发第一数据包的代理服务)发送第一数据包至第二目标服务器。其中,第二目标服务器能够解析dns请求即可,例如,第二目标服务器可以为114dns服务器。
78.可选地,基于dns-hook获取第二目标服务器返回的ip地址,包括:基于dns-hook接收第二目标服务器返回的第二数据包,第二数据包中包括dns请求对应的响应结果数据;基于dns-hook解析第二数据包得到ip地址。
79.在一种可能的实施方式中,第二目标服务器对dns请求进行响应,然后将响应结果数据封装为第二数据包并发送第二数据包至终端系统的前置机,再由该前置机发送至dns-hook。由此,终端系统可以基于dns-hook接收第二数据包。本技术实施例不对封装响应结果数据的方式进行限定,封装响应结果数据的方式可以与封装dns请求的方式相同,例如,可以采用udp对响应结果数据进行封装,得到第二数据包。
80.本技术实施例不对基于dns-hook解析第二数据包的方式进行限定,例如,当第二数据包为采用udp封装成的数据包,则dns-hook可以对第二数据包采用udp进行解析,得到dns请求对应的ip地址。
81.由于是基于dns-hook获取dns请求对应的ip地址,不需要终端系统任何特定能力的支持,可以使任一终端系统获取对应的ip地址,提高代理网络请求的可靠性。
82.步骤202,基于传输层采用的协议-钩子hook,向ip地址对应的第一目标服务器发送网络请求。
83.在一种可能的实施方式中,在终端系统已知ip地址的情况下,终端系统需要向该ip地址对应的第一目标服务器发送网络请求。其中,终端系统可以基于传输层采用的协议-钩子hook,向ip地址对应的第一目标服务器发送网络请求。
84.在一种可能的实施方式中,传输层采用的协议不同,基于传输层采用的协议-钩子hook,向ip地址对应的第一目标服务器发送网络请求,包括但不限于如下两种情况。
85.情况一:基于传输层采用的协议-钩子hook,向ip地址对应的第一目标服务器发送网络请求,包括:响应于网络请求在传输层采用tcp,基于tcp-hook向ip地址对应的第一目标服务器发送网络请求,终端系统与第一目标服务器通过tcp-hook相连接。
86.可选地,终端系统基于tcp-hook与第一前置机代理服务相连接,第一前置机代理服务与第一目标服务器相连接。
87.本技术实施例不对tcp-hook的位置进行限定,例如,可以将tcp-hook设置在终端系统的connect(连接)函数的位置。
88.示例性地,终端系统基于tcp-hook与第一前置机代理服务相连接的方式可以通过tcp-hook将connect函数位置的第一目标服务器的ip地址与第一目标服务器服务的端口号修改为终端系统的前置机的ip地址与第一前置机代理服务的端口号的方式来实现,该网络请求对应的第一目标服务器ip地址为步骤201获取的ip地址。本技术实施例不对获得第一目标服务器服务的端口号的方式以及第一前置机代理服务的端口号进行限定,例如,可以由终端系统配置获得。
89.示例性地,第一前置机代理服务与第一目标服务器相连接的方式可以通过tcp-hook将该网络请求对应的第一目标服务器的ip地址与第一目标服务器服务的端口号发送
至第一前置机代理服务来实现。
90.在终端系统基于tcp-hook与第一前置机代理服务相连接,第一前置机代理服务与第一目标服务器相连接之后,终端系统可以基于tcp-hook向ip地址对应的第一目标服务器发送网络请求。示例性地,终端系统可以将网络请求发送至第一前置机代理服务,再由第一前置机代理服务将网络请求发送至第一目标服务器。该第一前置机代理服务需要能够支持tcp,例如可以使用socks5server(防火墙安全会话转换协议5代理服务)。
91.情况二,基于传输层采用的协议-钩子hook,向ip地址对应的第一目标服务器发送网络请求,包括:响应于网络请求在传输层采用udp,基于第一udp-hook向ip地址对应的第一目标服务器发送网络请求。
92.本技术实施例不对第一udp-hook的位置进行限定,例如,可以将第一udp-hook设置在终端系统的sendto(发送)函数的位置。
93.可选地,基于第一udp-hook向ip地址对应的第一目标服务器发送网络请求,包括:基于第一udp-hook封装网络请求得到第三数据包,基于第一udp-hook将第三数据包发送至第一目标服务器。
94.其中,第一udp-hook可以采用udp对网络请求封装得到第三数据包。
95.示例性地,终端系统可以基于第一udp-hook将第三数据包发送至第二前置机代理服务,再由第二前置机代理服务对第三数据包进行解析得到第一目标服务器的地址以及网络请求中包括的其他数据,该地址包括第一目标服务器的ip地址与第一目标服务器服务的端口号。然后,第二前置机代理服务可以基于该地址发送网络请求至第一目标服务器。
96.本技术实施例不对基于第一udp-hook将第三数据包发送至第二前置机代理服务的方式进行限定,例如,可以通过第一udp-hook将sendto函数位置的第一目标服务器的ip地址与第一目标服务器服务的端口号修改为终端系统的前置机的ip地址与第二前置机代理服务的端口号的方式发送第三数据包。其中,第二前置机代理服务需要能够支持upd并且不需要对其中的数据进行加解密操作,例如可以使用socks5 server作为第二前置机代理服务。
97.可选地,基于第一udp-hook向ip地址对应的第一目标服务器发送网络请求,包括:基于第一udp-hook将ip地址与网络请求对应的数据进行封装与加密得到第五数据包,基于第一udp-hook将第五数据包发送至第一目标服务器。
98.其中,第一udp-hook可以采用udp对网络请求进行封装。另外,本技术实施例不对加密方式进行限定。
99.示例性地,终端系统可以基于第一udp-hook将第五数据包发送至第三前置机代理服务,再由第三前置机代理服务对第五数据包进行解析与解密得到第一目标服务器的地址以及网络请求中包括的其他数据,该地址包括第一目标服务器的ip地址与第一目标服务器服务的端口号。然后,第三前置机代理服务可以基于该地址发送网络请求至第一目标服务器。
100.本技术实施例不对基于第一udp-hook将第五数据包发送至第三前置机代理服务的方式进行限定,例如,可以通过第一udp-hook将sendto函数位置的第一目标服务器的ip地址与第一目标服务器服务的端口号修改为终端系统的前置机的ip地址与第三前置机代理服务的端口号的方式发送第五数据包。其中,第三前置机代理服务需要能够支持upd并且
需要对其中的数据进行加解密操作,例如可以使用shadowsocks5 server(代理服务)作为第三前置机代理服务。
101.本技术实施例基于传输层采用的协议-钩子hook,向ip地址对应的第一目标服务器发送网络请求,不需要终端系统任何特定能力的支持,可以使任一终端发送网络请求至第一目标服务器,提高代理网络请求的可靠性。
102.步骤203,接收第一目标服务器发送的网络请求结果。
103.在一种可能的实施方式中,发送网络请求的情况满足上述情况一,可选地,接收第一目标服务器发送的网络请求结果,包括:
104.第一目标服务器发送网络请求结果至第一前置机代理服务,然后第一前置机代理服务将接收的网络请求结果发送至终端系统。
105.在一种可能的实施方式中,发送网络请求的情况满足上述情况二,可选地,接收第一目标服务器发送的网络请求结果,包括:基于第二udp-hook接收第一目标服务器发送的网络请求结果。
106.本技术实施例不对第二udp-hook的位置进行限定,例如,可以将第二udp-hook设置在终端系统的recvfrom(接收)函数的位置。
107.可选地,在基于第一udp-hook将第三数据包发送至第一目标服务器的情况下,基于第二udp-hook接收第一目标服务器发送的网络请求结果,包括:基于第二udp-hook对第一目标服务器通过第二前置机代理服务发送的第四数据包进行解析,得到网络请求结果,第四数据包为第三数据包对应的网络请求结果。
108.示例性地,第一目标服务器对网络请求进行响应,并将网络请求响应数据发送至第二前置机代理服务,第二前置机代理服务将网络请求响应数据进行封装得到第四数据包,并将第四数据包发送至第二udp-hook。其中,第二前置机代理服务可以采用udp对网络请求响应数据进行封装。第二udp-hook可以对第四数据包进行解析,之后终端系统可以基于第二udp-hook接收该网络请求结果。
109.可选地,在基于第一udp-hook将第五数据包发送至第一目标服务器的情况下,基于第二udp-hook接收第一目标服务器发送的网络请求结果,包括:基于第二udp-hook对第一目标服务器通过第三前置机代理服务发送的第六数据包进行解析与解密,得到网络请求结果,第六数据包为第五数据包对应的网络请求结果。
110.示例性地,第一目标服务器对网络请求进行响应,并将网络请求响应数据发送至第三前置机代理服务,第三前置机代理服务将网络请求响应数据进行封装与加密得到第六数据包,并将第六数据包发送至第二udp-hook。其中,第二前置机代理服务可以采用udp对网络请求响应数据进行封装。第二udp-hook可以对第六数据包进行解密与解析,之后终端系统可以基于第二udp-hook接收该网络请求结果。
111.在本技术实施例中,在向第一目标服务器发送网络请求时,可以先基于dns-hook使任一终端系统获取第一目标服务器对应的ip地址,然后再基于传输层采用的协议-钩子hook使任一终端系统向第一目标服务器发送网络请求。上述方案基于dns-hook与传输层采用的协议-钩子hook来代理网络请求,不需要终端系统特定能力的支持,提高了代理网络请求的可靠性。即便是针对处于专网环境的终端系统,也可以不受网络访问限制,突破车机业务场景下的专网限制,保障了车机业务后续不受专网限制,解决专网环境带来的网络问题。
112.参见图3,本技术实施例提供了一种获取ip地址的方法,该方法包括步骤301-步骤310。
113.301,终端系统发送dns请求。
114.302,响应于终端系统发送dns请求,基于dns-hook获取dns请求对应的ip地址。终端系统基于dns-hook封装dns-hook请求为第一数据包。
115.303,前置机接收dns请求。也即前置机接收第一数据包。
116.304,前置机基于dnsmasq转发dns请求。也即前置机将dns请求(第一数据包)发送至第二目标服务器。
117.305,第二目标服务器解析dns请求,也即解析第一数据包。
118.306,第二目标服务器将第二数据包返回至前置机。
119.307,前置机接收并返回第二数据包至dns-hook。
120.308,终端系统基于dns-hook解析第二数据包。
121.309,终端系统基于dns-hook获取ip地址,将ip地址返回给终端系统。
122.310,终端系统通过ip地址发送网络请求。
123.终端系统基于dns-hook获取dns请求对应的ip地址,之后终端系统可以向该ip地址对应的第一目标服务器发送网络请求。
124.图3提供的方法步骤的实现方式均可参见上述步骤201,此处不再赘述。
125.参见图4,本技术实施例提供了一种代理网络请求的方法,以传输层采用的协议为tcp为例,该方法包括步骤401-步骤413。
126.401,终端系统创建socket实例。
127.402,在终端系统的connect(连接)函数的位置设置tcp-hook。
128.403,终端系统基于tcp-hook连接socks5 server。该步骤的实现方式可参见上述步骤202,此处不再赘述。
129.404,socks5 server与终端系统建立连接。该步骤的实现方式可参见上述步骤202,此处不再赘述。
130.405,终端系统基于tcp-hook将目的地址发送至socks5 server。该目的地址包括第一目标服务器的ip地址与第一目标服务器服务的端口号。该步骤的实现方式可参见上述步骤202,此处不再赘述。
131.406,socks5 server连接第一目标服务器。该步骤的实现方式可参见上述步骤202,此处不再赘述。
132.407,第一目标服务器与socks5 server建立连接。该步骤的实现方式可参见上述步骤202,此处不再赘述。
133.408,终端系统发送网络请求至socks5 server。该步骤的实现方式可参见上述步骤202,此处不再赘述。
134.409,socks5 server将网络请求发送至第一目标服务器。该步骤的实现方式可参见上述步骤202,此处不再赘述。
135.410,第一目标服务器接收网络请求。
136.411,第一目标服务器发送网络请求结果至socks5 server。第一目标服务器对该网络请求进行响应,并基于第一目标服务器与socks5 server的连接将网络请求结果发送
至socks5 server。
137.412,socks5 server将网络请求结果发送至终端系统。socks5 server基于socks5 server与终端系统的连接将网络请求结果发送至终端系统。
138.413,终端系统接收网络请求结果。
139.参见图5,本技术实施例提供了一种代理网络请求的方法,以传输层采用的协议为udp为例,该方法包括步骤501-步骤513。
140.501,终端系统创建socket实例。
141.502,终端系统发送网络请求。
142.503,终端系统基于第一udp-hook将ip地址和网络请求进行封装与加密得到第五数据包。示例性地,可以在终端系统的sendto(发送)函数的位置设置第一udp-hook。该步骤的实现方式可参见上述步骤202,此处不再赘述。
143.504,终端系统基于第一udp-hook将第五数据包发送至shadowsocks5server。该步骤的实现方式可参见上述步骤202,此处不再赘述。
144.505,shadowsocks5 server对第五数据包进行解密与解析得到ip地址与网络请求对应的其他数据。该步骤的实现方式可参见上述步骤202,此处不再赘述。
145.506,shadowsocks5 server发送网络请求至第一目标服务器。该步骤的实现方式可参见上述步骤202,此处不再赘述。
146.507,第一目标服务器接收网络请求。
147.508,第一目标服务器发送网络请求结果至shadowsocks5 server。该步骤的实现方式可参见上述步骤203,此处不再赘述。
148.509,shadowsocks5 server对网络请求结果进行封装与加密,得到第六数据包。该步骤的实现方式可参见上述步骤203,此处不再赘述。
149.510,shadowsocks5 server发送第六数据包至udp-hook。该步骤的实现方式可参见上述步骤203,此处不再赘述。
150.511,终端系统基于udp-hook对第六数据包进行解密与解析得到网络请求结果。示例性地,可以将第二udp-hook设置在终端系统的recvfrom(接收)函数的位置。该步骤的实现方式可参见上述步骤203,此处不再赘述。
151.512,终端系统基于udp-hook发送网络请求结果至终端系统。该步骤的实现方式可参见上述步骤203,此处不再赘述。
152.513,终端系统接收网络请求结果。
153.参见图6,本技术实施例提供了一种代理网络请求的装置,该装置包括:
154.获取模块601,用于响应于终端系统发送dns请求,基于dns-hook获取dns请求对应的ip地址;
155.发送模块602,用于基于传输层采用的协议-钩子hook,向ip地址对应的第一目标服务器发送网络请求;
156.接收模块603,用于接收第一目标服务器发送的网络请求结果。
157.可选地,获取模块601,用于基于dns-hook发送dns请求至第二目标服务器,第二目标服务器用于解析dns请求得到对应的ip地址;基于dns-hook获取第二目标服务器返回的ip地址。
158.可选地,发送模块602,用于响应于网络请求在传输层采用tcp,基于tcp-hook向ip地址对应的第一目标服务器发送网络请求,终端系统与第一目标服务器通过tcp-hook相连接。
159.可选地,终端系统基于tcp-hook与第一前置机代理服务相连接,第一前置机代理服务与第一目标服务器相连接。
160.可选地,发送模块602,用于响应于网络请求在传输层采用udp,基于第一udp-hook向ip地址对应的第一目标服务器发送网络请求;
161.接收模块603,用于基于第二udp-hook接收第一目标服务器发送的网络请求结果。
162.可选地,获取模块601,用于基于dns-hook封装dns请求为第一数据包;基于dns-hook发送第一数据包至第二目标服务器。
163.可选地,获取模块601,用于基于dns-hook接收第二目标服务器返回的第二数据包,第二数据包中包括dns请求对应的响应结果数据;基于dns-hook解析第二数据包得到ip地址。
164.可选地,发送模块602,用于基于第一udp-hook封装网络请求得到第三数据包,基于第一udp-hook将第三数据包发送至第一目标服务器;
165.接收模块603,用于基于第二udp-hook对第一目标服务器通过第二前置机代理服务发送的第四数据包进行解析,得到网络请求结果,第四数据包为第三数据包对应的网络请求结果。
166.可选地,发送模块602,用于基于第一udp-hook将ip地址与网络请求对应的数据进行封装与加密得到第五数据包,基于第一udp-hook将第五数据包发送至第一目标服务器;
167.接收模块603,用于基于第二udp-hook对第一目标服务器通过第三前置机代理服务发送的第六数据包进行解析与解密,得到网络请求结果,第六数据包为第五数据包对应的网络请求结果。
168.在本技术实施例中,在向第一目标服务器发送网络请求时,可以先基于dns-hook使任一终端系统获取第一目标服务器对应的ip地址,然后再基于传输层采用的hook使任一终端系统向第一目标服务器发送网络请求。上述方案基于dns-hook与传输层采用的hook来代理网络请求,不需要终端系统特定能力的支持,提高了代理网络请求的可靠性。
169.需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
170.图7是本技术实施例提供的一种计算机设备的结构示意图,该服务器可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(central processing units,cpu)701和一个或多个存储器702,其中,该一个或多个存储器702中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器701加载并执行,以使该服务器实现上述各个方法实施例提供的代理网络请求方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
171.图8是本技术实施例提供的一种计算机设备结构示意图。该设备可以为终端,例如可以是:车载终端(也称车机)、智能手机、平板电脑、mp3(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)播放器、mp4(moving picture experts group audio layer iv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
172.通常,终端包括有:处理器801和存储器802。
173.处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
174.存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行,以使该终端实现本技术中方法实施例提供的代理网络请求的方法。
175.在一些实施例中,终端还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:射频电路804、显示屏805、摄像头组件806、音频电路807、定位组件808和电源809中的至少一种。
176.外围设备接口803可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。在一些实施例中,处理器801、存储器802和外围设备接口803被集成在同一芯片或电路板上;在一些其他实施例中,处理器801、存储器802和外围设备接口803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
177.射频电路804用于接收和发射rf(radio frequency,射频)信号,也称电磁信号。射频电路804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路804将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路804包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路804可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wireless fidelity,无线保真)网络。在一些实施例中,射频电路804还可以包括nfc(near field communication,近距离无线通信)有关的电路,本技术对此不加以限定。
178.显示屏805用于显示ui(user interface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏805是触摸显示屏时,显示屏805还具有采集在显示屏805的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。此时,显示屏805还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏805可以为一个,设置在终端的前面板;在另一些实施例中,显示屏805可以为至少两个,分别设置在终端的不同表面或呈折叠设计;在另一些实施例中,显示屏805可以是柔性显示屏,设置在终端的弯曲表面上或折叠面上。甚至,显示屏805还可以设置成非矩形的不规则图形,也即异形屏。显示屏805可以采用lcd(liquid crystal display,液晶显示屏)、oled(organic light-emitting diode,有机发光二极管)等材质制备。
179.摄像头组件806用于采集图像或视频。可选地,摄像头组件806包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtual reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件806还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
180.音频电路807可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器801进行处理,或者输入至射频电路804以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器801或射频电路804的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路807还可以包括耳机插孔。
181.定位组件808用于定位终端的当前地理位置,以实现导航或lbs(location based service,基于位置的服务)。定位组件808可以是基于美国的gps(global positioning system,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
182.电源809用于为终端中的各个组件进行供电。电源809可以是交流电、直流电、一次性电池或可充电电池。当电源809包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
183.在一些实施例中,终端还包括有一个或多个传感器810。该一个或多个传感器810包括但不限于:加速度传感器811、陀螺仪传感器812、压力传感器813、指纹传感器814、光学传感器815以及接近传感器816。
184.加速度传感器811可以检测以终端建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器811可以用于检测重力加速度在三个坐标轴上的分量。处理器801可以根据加速度传感器811采集的重力加速度信号,控制显示屏805以横向视图或纵向视图进行
用户界面的显示。加速度传感器811还可以用于游戏或者用户的运动数据的采集。
185.陀螺仪传感器812可以检测终端的机体方向及转动角度,陀螺仪传感器812可以与加速度传感器811协同采集用户对终端的3d动作。处理器801根据陀螺仪传感器812采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。
186.压力传感器813可以设置在终端的侧边框和/或显示屏805的下层。当压力传感器813设置在终端的侧边框时,可以检测用户对终端的握持信号,由处理器801根据压力传感器813采集的握持信号进行左右手识别或快捷操作。当压力传感器813设置在显示屏805的下层时,由处理器801根据用户对显示屏805的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
187.指纹传感器814用于采集用户的指纹,由处理器801根据指纹传感器814采集到的指纹识别用户的身份,或者,由指纹传感器814根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器801授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器814可以被设置在终端的正面、背面或侧面。当终端上设置有物理按键或厂商logo(商标)时,指纹传感器814可以与物理按键或厂商logo集成在一起。
188.光学传感器815用于采集环境光强度。在一个实施例中,处理器801可以根据光学传感器815采集的环境光强度,控制显示屏805的显示亮度。具体地,当环境光强度较高时,调高显示屏805的显示亮度;当环境光强度较低时,调低显示屏805的显示亮度。在另一个实施例中,处理器801还可以根据光学传感器815采集的环境光强度,动态调整摄像头组件806的拍摄参数。
189.接近传感器816,也称距离传感器,通常设置在终端的前面板。接近传感器816用于采集用户与终端的正面之间的距离。在一个实施例中,当接近传感器816检测到用户与终端的正面之间的距离逐渐变小时,由处理器801控制显示屏805从亮屏状态切换为息屏状态;当接近传感器816检测到用户与终端的正面之间的距离逐渐变大时,由处理器801控制显示屏805从息屏状态切换为亮屏状态。
190.本领域技术人员可以理解,图8中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
191.在示例性实施例中,还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条计算机程序。该至少一条计算机程序由一个或者一个以上处理器加载并执行,以使该计算机设备实现上述任一种代理网络请求的方法。
192.在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由计算机设备的处理器加载并执行,以使计算机实现上述任一种代理网络请求的方法。
193.在一种可能实现方式中,上述计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
194.在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机
设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一种代理网络请求的方法。
195.需要说明的是,本技术所涉及的信息、数据以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本技术中涉及到的终端系统获取到的数据、第一数据包、第二数据包、第三数据包、ip地址、用户的身份等都是在充分授权的情况下获取的。
196.应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
197.以上所述仅为本技术的示例性实施例,并不用以限制本技术,凡在本技术的原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献