CN109120696A - 用于发送数据的方法和装置 - Google Patents
用于发送数据的方法和装置 Download PDFInfo
- Publication number
- CN109120696A CN109120696A CN201810942105.7A CN201810942105A CN109120696A CN 109120696 A CN109120696 A CN 109120696A CN 201810942105 A CN201810942105 A CN 201810942105A CN 109120696 A CN109120696 A CN 109120696A
- Authority
- CN
- China
- Prior art keywords
- data
- format
- target
- socks
- proxy server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例公开了用于发送数据的方法和装置。该方法的一具体实施方式包括:获取目标应用发送的网络请求;读取网络请求对应的网络数据包;将网络数据包转换为预定格式的数据;将预定格式的数据转换为socks格式的数据;将socks格式的数据发送至目标代理服务器。该实施方式丰富了数据的发送方式,有助于提高网络代理的自动化程度,有助于实现通过socks代理服务器建立与目标服务器的连接。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及用于发送数据的方法和装置。
背景技术
代理服务器(Proxy Server),其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。
在一般情况下,当我们使用网络浏览器直接去连接网站服务器取得网络信息时,须送出请求(Request)信号来得到回答,然后网站服务器再把信息传送回来。然而,当浏览器与浏览器代理服务器建立连接之后,浏览器不是直接到网站服务器去取回网页,而是向代理服务器发出请求,请求信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给浏览器。
目前,安卓系统中系统网络代理功能是由安卓系统提供的。通常,用户若要设置网络代理,需要进入“设置”应用中手动输入代理服务器地址、账号、密码,之后,才可以与超文本传输协议(http,HyperText Transfer Protocol)代理服务器建立连接。此外,目前安卓系统网络代理功能是通过linux内核(一种开源电脑操作系统内核)实现,往往只有系统级应用(即第二方应用,使用安卓系统签名、并标注为“系统”的应用)才能访问其接口进行设置。普通用户要设置网络代理,需要通过图形用户界面(UI,User Interface)来设置。
发明内容
本申请实施例提出了用于发送数据的方法和装置。
第一方面,本申请实施例提供了一种用于发送数据的方法,该方法包括:获取目标应用发送的网络请求;读取网络请求对应的网络数据包;将网络数据包转换为预定格式的数据;将预定格式的数据转换为socks(防火墙安全会话转换协议,Protocol for sessionstraversal across firewall securely)格式的数据;将socks格式的数据发送至目标代理服务器。
在一些实施例中,该方法还包括:响应于接收到针对目标代理服务器的目标端口发送的数据,将所接收到的数据转换为socks格式的数据以及发送至目标代理服务器。
在一些实施例中,获取目标应用发送的网络请求,包括:建立虚拟专用网络VPN;通过VPN获取目标应用发送的网络请求。
在一些实施例中,网络请求是目标应用向目标服务器发送的,网络请求包括目标服务器的域名;以及将socks格式的数据发送至目标代理服务器,包括:将socks格式的数据发送至目标代理服务器,以使目标代理服务器解析socks格式的数据,得到域名,通过域名建立与目标服务器的连接。
在一些实施例中,预定格式为用户数据报协议UDP格式,socks格式为socks5格式,目标代理服务器为socks5代理服务器。
在一些实施例中,目标应用为非系统级应用。
第二方面,本申请实施例提供了一种用于发送数据的装置,该装置包括:获取单元,被配置成获取目标应用发送的网络请求;读取单元,被配置成读取网络请求对应的网络数据包;第一转换单元,被配置成将网络数据包转换为预定格式的数据;第二转换单元,被配置成将预定格式的数据转换为防火墙安全会话转换协议socks格式的数据;第一发送单元,被配置成将socks格式的数据发送至目标代理服务器。
在一些实施例中,该装置还包括:第二发送单元,被配置成响应于接收到针对目标代理服务器的目标端口发送的数据,将所接收到的数据转换为socks格式的数据以及发送至目标代理服务器。
在一些实施例中,获取单元包括:建立模块,被配置成建立虚拟专用网络VPN;获取模块,被配置成通过VPN获取目标应用发送的网络请求。
在一些实施例中,网络请求是目标应用向目标服务器发送的,网络请求包括目标服务器的域名;以及第一发送单元包括:发送模块,被配置成将socks格式的数据发送至目标代理服务器,以使目标代理服务器解析socks格式的数据,得到域名,通过域名建立与目标服务器的连接。
在一些实施例中,预定格式为用户数据报协议UDP格式的数据,socks格式为socks5格式,目标代理服务器为socks5代理服务器。
在一些实施例中,目标应用为非系统级应用。
第三方面,本申请实施例提供了一种用于发送数据的电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行,使得该一个或多个处理器实现如上述用于发送数据的方法中任一实施例的方法。
第四方面,本申请实施例提供了一种用于发送数据的计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述用于发送数据的方法中任一实施例的方法。
本申请实施例提供的用于发送数据的方法和装置,通过获取目标应用发送的网络请求,然后,读取网络请求对应的网络数据包,之后,将网络数据包转换为预定格式的数据,随后,将预定格式的数据转换为socks格式的数据,最后,将socks格式的数据发送至目标代理服务器,从而丰富了数据的发送方式,有助于提高网络代理的自动化程度,有助于实现通过socks代理服务器建立与目标服务器的连接。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本申请的用于发送数据的方法的一个实施例的流程图;
图3是根据本申请的用于发送数据的方法的一个应用场景的示意图;
图4是根据本申请的用于发送数据的方法的又一个实施例的流程图;
图5是根据本申请的用于发送数据的装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请实施例的用于发送数据的方法或用于发送数据的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送信息(例如网络请求)等。终端设备101、102、103上可以安装有各种客户端应用。终端设备101、102、103上安装的客户端应用可以是系统级应用(即第二方应用,使用安卓系统签名、并标注为“系统”的应用),也可以是非系统级应用(即未标注为“系统”的应用,例如,编程爱好者或者组织专门针对某类设备开发出来的应用软件)。作为示例,上述客户端应用可以是但不限于:网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是能够发送网络请求的各种电子设备,包括但不限于智能手机、平板电脑等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如接收终端设备101、102、103发送的网络请求的后台服务器(例如网站服务器)。后台服务器可以对接收到的网络请求等数据进行分析等处理,并将处理结果(例如网页页面数据)反馈给终端设备。
需要说明的是,本申请实施例所提供的用于发送数据的方法可以由服务器105执行,相应地,用于发送数据的装置可以设置于服务器105中;此外,本申请实施例所提供的用于发送数据的方法也可以由终端设备101、102、103执行,相应地,用于发送数据的装置也可以设置于终端设备101、102、103中。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的用于发送数据的方法的一个实施例的流程200。该用于发送数据的方法,包括以下步骤:
步骤201,获取目标应用发送的网络请求。
在本实施例中,用于发送数据的方法的执行主体(例如图1所示的服务器或终端设备)可以通过有线连接方式或者无线连接方式从其他电子设备或者本地,获取目标应用发送的网络请求。其中,目标应用可以是安装于上述执行主体上的应用,也可以是安装于与上述执行主体通信连接的电子设备上的应用。在这里,上述目标应用为安卓应用。该目标应用可以是系统级应用(即第二方应用,使用安卓系统签名、并标注为“系统”的应用),也可以是非系统级应用(例如,编程爱好者或者组织专门针对某类设备开发出来的应用软件)。作为示例,上述应用可以是但不限于:网页浏览器应用、购物类应用、搜索类应用等。网络请求可以是任意网络请求。作为示例,网络请求可以是但不限于:HTTP(超文本传输协议,HyperText Transfer Protocol)请求、HTTPS(以安全为目标的HTTP通道,Hyper TextTransfer Protocol over Secure Socket Layer)请求,FTP(文件传输协议,FileTransfer Protocol)请求,SMTP(简单邮件传输协议,Simple Mail Transfer Protocol)请求,DNS(域名系统,Domain Name System)、NNTP(Network News Transfer Protocol,网络新闻传输协议)请求等等。
在本实施例的一些可选的实现方式中,目标应用可以是非系统级应用。
可以理解,系统级应用和非系统级应用具有不同的权限,目前,通常只有安卓系统下的系统级应用可以访问安卓系统网络代理的接口。而本申请实施例的方案可以获取非系统级应用发送的网络请求,从而通过代理服务器取得网络请求所请求的网络信息。
步骤202,读取网络请求对应的网络数据包。
在本实施例中,基于步骤201中得到的网络请求,上述执行主体可以读取网络请求对应的网络数据包。其中,网络数据包可以是TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)协议通信传输中的数据单位,是IP层的数据包(packet)。在包交换网络里,单个消息被划分为多个数据块,这些数据块称为包(即上述网络数据包),它包含发送端和接收端的地址信息。
实践中,上述执行主体可以将网络请求送入VPN(虚拟装用网络,Virtual PrivateNetwork)网络接口中,然后,由sdk中的VpnService类(一个安卓自带的vpn服务类)下的establish()方法得到虚拟网络接口的文件句柄(file handle),之后,上述执行主体可以从文件句柄中读取该网络请求对应的网络数据包。
在这里,网络数据包(即IP数据包)传输在TCP/IP四层模型(包括应用层、传输层、网络层和链路层)中的网络层。网络数据包的格式通常包括:首部和数据部分。其中,网络数据包中的首部的前一部分是固定长度,共20字节。在首部的固定部分的后面是一些可选字段,其长度是可变的。首部中的源地址和目的地址都是IP(Internet Protocol)协议地址。具体地,网络数据包可以包括:版本号(Version):长度4比特,包头长度(Header Length):长度4比特,服务类型(Type of Service):长度8比特,包总长(Total Length):长度16比特,标识符(Identifier):长度16比特,标记(Flags):长度3比特,片偏移(FragmentOffset):长度13比特,生存时间(TTL):长度8比特,协议(Protocol):长度8比特,头部校验(Header Checksum):长度16比特,起源和目标地址(Source and DestinationAddresses):这两个字段都是32比特,可选项(Options):可变长的字段,该字段属于可选项,填充(Padding):因为包头长度(Header Length)部分的单位为32比特,所以包头的长度必须为32比特的整数倍。因此,在可选项后面,IP协议会填充若干个0,以达到32比特的整数倍。
步骤203,将网络数据包转换为预定格式的数据。
在本实施例中,上述执行主体可以将网络数据包转换为预定格式的数据。其中,上述预定格式可以是TCP(传输控制协议,Transmission Control Protocol)格式,也可以是UDP(用户数据报协议,User Datagram Protocol)格式。TCP协议的数据和UDP协议的数据属于TCP/IP四层模型中的传输层。
在这里,TCP协议提供的是面向连接、可靠的字节流服务。在交换数据前,需要首先建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。UDP协议是一个简单的面向数据报的运输层协议。通常,UDP不提供可靠性,它只是把应用程序传给IP层的数据报(即上述网络数据包)发送出去,但是并不保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
在这里,TCP协议格式的数据可以包括:源端口号:长度16比特,目的端口号:长度16比特,序列号:长度32比特,确认号:长度32比特,TCP头:长度4比特,保留(reserved):长度6比特,标志位:长度6比特,窗口大小:长度16比特,校验和:长度16比特,偏移量:长度16比特,选项(可选)。UDP协议格式的数据可以包括:源端口号:长度16比特,目的端口号:长度16比特,数据包长度:长度16比特,校验和:长度16比特。
实践中,上述执行主体可以通过TCP/IP协议栈实现将网络数据包转换为上述预定格式的数据。作为示例,上述执行主体可以对网络数据包的结构进行解析,然后组装成预定格式的数据(即TCP或UDP协议格式的数据)。
步骤204,将预定格式的数据转换为socks格式的数据。
在本实施例中,上述执行主体可以将上述预定格式(即TCP协议格式或UDP协议格式)的数据转换为socks格式的数据。其中,socks格式可以是,socks4格式,也可以是socks4a格式,还可以是socks5格式,本申请实施例对此不做限定。
但需要说明的是,socks4只支持TCP协议,而socks5支持TCP或UDP协议。因此,当上述预定格式的数据为TCP协议格式的数据时,上述执行主体可以将预定格式的数据转换为socks4或者socks4a或者socks5格式的数据;当上述预定格式的数据为UDP协议格式的数据时,上述执行主体可以将预定格式的数据转换socks5格式的数据。
步骤205,将socks格式的数据发送至目标代理服务器。
在本实施例中,上述执行主体可以将socks格式的数据发送至目标代理服务器。其中,目标代理服务器可以是待与上述执行主体建立通信连接的服务器。
需要说明的是,上述网络请求并非上述目标应用主动向目标代理服务器发送的,而是向上述目标应用请求访问的服务器发送的。作为示例,上述目标应用发送的网络请求可以是请求访问某网站的网络请求,因而,上述网络请求可以是向该网站的网站服务器发送的。
在本实施例的一些可选的实现方式中,上述获取目标应用发送的网络请求可以包括:建立VPN;通过VPN获取目标应用发送的网络请求。
在这里,在安卓设备的VPN功能处于关闭的状态下,上述执行主体可以通过上述VpnService类下的establish()方法打开安卓设备的VPN功能,从而建立VPN。然后,上述执行主体可以在VPN功能开启的状态下,通过VPN获取目标应用发送的网络请求。
在本实施例的一些可选的实现方式中,网络请求是目标应用向目标服务器发送的,网络请求包括目标服务器的域名,基于此,上述将socks格式的数据发送至目标代理服务器,可以包括:将socks格式的数据发送至目标代理服务器,以使目标代理服务器解析socks格式的数据,得到域名,通过域名建立与目标服务器的连接。
可以理解,上述目标代理服务器可以通过域名确定目标服务器的IP地址,从而建立与目标服务器的连接。
在本实施例的一些可选的实现方式中,上述预定格式为UDP格式,socks格式为socks5格式,目标代理服务器为socks5代理服务器。
可以理解,当上述预定格式为UDP格式,socks格式为socks5格式,目标代理服务器为socks5代理服务器时,相对于TCP协议格式的数据而言,UDP协议格式的数据具备更快的传输速度。
在这里,相对于现有技术中,用户到“设置”应用中手工输入代理服务器的地址、账号、密码而言,本申请实施例提供的用于发送数据的方法可以通过VPN的方式,建立与目标代理服务器的连接,有助于提高与目标代理服务器建立连接的自动化程度,避免了用户手工输入代理服务器的地址、账号、密码这一步骤。此外,在与目标代理服务器建立连接的基础上,还可以实现网络流量截取、流量控制、动态修改应用程序的host(一个没有扩展名的系统文件)等功能。
继续参见图3,图3是根据本实施例的用于发送数据的方法的应用场景的一个示意图。在图3的应用场景中,首先,终端设备301获取目标应用向目标服务器303发送的网络请求。然后,终端设备301读取网络请求对应的网络数据包。之后,终端设备301将网络数据包转换为预定格式(例如UDP格式)的数据。随后,终端设备301将预定格式的数据转换为socks格式的数据。最后,终端设备301将socks格式的数据发送至目标代理服务器302。
本申请的上述实施例提供的方法,通过获取目标应用发送的网络请求,之后,读取网络请求对应的网络数据包,随后,将网络数据包转换为预定格式的数据,然后,将预定格式的数据转换为防火墙安全会话转换协议socks格式的数据,最后,将socks格式的数据发送至目标代理服务器,从而丰富了数据的发送方式,有助于提高网络代理的自动化程度,有助于实现通过socks代理服务器建立与目标服务器的连接。
进一步参考图4,其示出了用于发送数据的方法的又一个实施例的流程400。该用于发送数据的方法的流程400,包括以下步骤:
步骤401,获取目标应用发送的网络请求。
在本实施例中,步骤401与图2对应实施例中的步骤201基本一致,这里不再赘述。
步骤402,读取网络请求对应的网络数据包。
在本实施例中,步骤402与图2对应实施例中的步骤202基本一致,这里不再赘述。
步骤403,将网络数据包转换为预定格式的数据。
在本实施例中,步骤403与图2对应实施例中的步骤203基本一致,这里不再赘述。
步骤404,将预定格式的数据转换为socks格式的数据。
在本实施例中,步骤404与图2对应实施例中的步骤204基本一致,这里不再赘述。
步骤405,将socks格式的数据发送至目标代理服务器。
在本实施例中,步骤405与图2对应实施例中的步骤205基本一致,这里不再赘述。
步骤406,响应于接收到针对目标代理服务器的目标端口发送的数据,将所接收到的数据转换为socks格式的数据以及发送至目标代理服务器。
在本实施例中,在接收到针对目标代理服务器的目标端口发送的数据的情况下,上述执行主体可以将所接收到的数据转换为socks格式的数据以及发送至目标代理服务器。其中,上述目标端口可以是上述执行主体监听的目标应用所在的设备的端口(如1080)。该目标端口可以是预先设置的目标代理服务器的端口。
在一些使用情况下,上述目标应用还可以通过如下步骤通过代理服务器,建立与目标服务器的连接:
首先,上述执行主体可以通过sdk(软件开发工具包,Software Development Kit)中的VpnService类下的establish()方法打开VPN功能。
然后,当上述目标应用试图连接目标服务器发出网络请求时,被上述执行主体获取到之后送入VPN网络接口中。
随后,上述执行主体可以从VPN网络接口中读取网络数据包,并将网络数据包转换成TCP或UDP协议格式的数据,再将转换成的TCP或UDP协议格式的数据转换为socks协议格式的数据。并监听目标代理服务器的目标端口(如1080)
之后,在接收到针对目标代理服务器的目标端口发送的数据的情况下,上述执行主体可以将所接收到的数据转换为socks格式的数据以及发送至目标代理服务器。
在这里,目标应用与目标代理服务器所建立的连接需要使用android VPN的SDK中VpnService类提供的protect()方法进行保护,避免被循环截取。
最后,目标代理服务器解析socks协议格式的数据,并建立与目标服务器的连接。
至此,上述目标应用可以通过代理服务器,建立与目标服务器的连接。
从图4中可以看出,与图2对应的实施例相比,本实施例中的用于发送数据的方法的流程400突出了在接收到针对目标代理服务器的目标端口发送的数据的情况下,将所接收到的数据转换为socks格式的数据以及发送至目标代理服务器的步骤。由此,本实施例描述的方案可以通过socks代理服务器建立与目标服务器的连接。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于发送数据的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,除下面所记载的特征外,该装置实施例还可以包括与图2所示的方法实施例相同或相应的特征。该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的用于发送数据的装置500包括:获取单元501、读取单元502、第一转换单元503、第二转换单元504和第一发送单元505。其中,获取单元501被配置成获取目标应用发送的网络请求;读取单元502被配置成读取网络请求对应的网络数据包;第一转换单元503被配置成将网络数据包转换为预定格式的数据;第二转换单元504被配置成将预定格式的数据转换为防火墙安全会话转换协议socks格式的数据;第一发送单元505被配置成将socks格式的数据发送至目标代理服务器。
在本实施例中,用于发送数据的装置500的获取单元501可以通过有线连接方式或者无线连接方式从其他电子设备或者本地,获取目标应用发送的网络请求。其中,目标应用可以是安装于上述装置500上的应用,也可以是安装于与上述装置500通信连接的电子设备上的应用。在这里,上述目标应用为安卓应用。该目标应用可以是系统级应用(即第二方应用,使用安卓系统签名、并标注为“系统”的应用),也可以是非系统级应用(例如,编程爱好者或者组织专门针对某类设备开发出来的应用软件)。作为示例,上述客户端应用可以是但不限于:网页浏览器应用、购物类应用、搜索类应用等。网络请求可以是任意网络请求。
在本实施例中,基于接收单元501得到的网络请求,上述读取单元502可以读取网络请求对应的网络数据包。其中,网络数据包可以是TCP/IP(Transmission ControlProtocol/Internet Protocol,传输控制协议/因特网互联协议)协议通信传输中的数据单位,是IP层的数据包(packet)。在包交换网络里,单个消息被划分为多个数据块,这些数据块称为包(即上述网络数据包),它包含发送者和接收者的地址信息。这些包可以沿着不同的路径在一个或多个网络中传输,并且在目的地重新组合。
在本实施例中,上述第一转换单元503可以将网络数据包转换为预定格式的数据。其中,上述预定格式可以是TCP(传输控制协议,Transmission Control Protocol)格式,也可以是UDP(用户数据报协议,User Datagram Protocol)格式。TCP协议的数据和UDP协议的数据属于TCP/IP四层模型中的传输层。
在本实施例中,上述第二转换单元504可以将上述预定格式(即TCP协议格式或UDP协议格式)的数据转换为socks格式的数据。其中,socks格式可以是,socks4格式,也可以是socks4a格式,还可以是,socks5格式,本申请实施例对此不做限定。
在本实施例中,上述第一发送单元505可以将socks格式的数据发送至目标代理服务器。其中,目标代理服务器可以是待与上述装置500建立通信连接的服务器。
在本实施例的一些可选的实现方式中,该装置500还可以包括:第二发送单元(图中未示出)被配置成响应于接收到针对目标代理服务器的目标端口发送的数据,将所接收到的数据转换为socks格式的数据以及发送至目标代理服务器。其中,上述目标端口可以是上述执行主体监听的目标应用所在的设备的端口(如1080)。该目标端口可以是预先设置的目标代理服务器的端口。
在本实施例的一些可选的实现方式中,获取单元包括:建立模块(图中未示出)被配置成建立虚拟专用网络VPN;获取模块(图中未示出)被配置成通过VPN获取目标应用发送的网络请求。
在本实施例的一些可选的实现方式中,网络请求是目标应用向目标服务器发送的,网络请求包括目标服务器的域名;以及第一发送单元可以包括:发送模块(图中未示出)被配置成将socks格式的数据发送至目标代理服务器,以使目标代理服务器解析socks格式的数据,得到域名,通过域名建立与目标服务器的连接。
可以理解,上述目标代理服务器可以通过域名确定目标服务器的IP地址,从而建立与目标服务器的连接。
在本实施例的一些可选的实现方式中,预定格式为UDP格式,socks格式为socks5格式,目标代理服务器为socks5代理服务器。
可以理解,当上述预定格式为UDP格式,socks格式为socks5格式,目标代理服务器为socks5代理服务器时,相对于TCP协议格式的数据而言,UDP协议格式的数据具备更快的传输速度。
在本实施例的一些可选的实现方式中,目标应用为非系统级应用。
可以理解,系统级应用和非系统级应用具有不同的权限,目前,通常只有安卓系统下的系统级应用可以访问安卓系统网络代理的接口。而本申请实施例的方案可以获取非系统级应用发送的网络请求,从而通过代理服务器取得网络请求所请求的网络信息。
本申请的上述实施例提供的装置,通过获取单元501获取目标应用发送的网络请求,之后,读取单元502读取网络请求对应的网络数据包,随后,第一转换单元503将网络数据包转换为预定格式的数据,然后,第二转换单元504将预定格式的数据转换为socks格式的数据,最后,第一发送单元505将socks格式的数据发送至目标代理服务器,从而丰富了数据的发送方式,有助于提高网络代理的自动化程度,有助于实现通过socks代理服务器建立与目标服务器的连接。
下面参考图6,其示出了适于用来实现本申请实施例的电子设备的计算机系统600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。
需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向目标的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、读取单元、第一转换单元、第二转换单元和第一发送单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“获取目标应用发送的网络请求的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取目标应用发送的网络请求;读取网络请求对应的网络数据包;将网络数据包转换为预定格式的数据;将预定格式的数据转换为防火墙安全会话转换协议socks格式的数据;将socks格式的数据发送至目标代理服务器。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (14)
1.一种用于发送数据的方法,包括:
获取目标应用发送的网络请求;
读取所述网络请求对应的网络数据包;
将所述网络数据包转换为预定格式的数据;
将所述预定格式的数据转换为防火墙安全会话转换协议socks格式的数据;
将所述socks格式的数据发送至目标代理服务器。
2.根据权利要求1所述的方法,其中,所述方法还包括:
响应于接收到针对所述目标代理服务器的目标端口发送的数据,将所接收到的数据转换为socks格式的数据以及发送至所述目标代理服务器。
3.根据权利要求1所述的方法,其中,所述获取目标应用发送的网络请求,包括:
建立虚拟专用网络VPN;
通过所述VPN获取目标应用发送的网络请求。
4.根据权利要求1-3之一所述的方法,其中,所述网络请求是所述目标应用向目标服务器发送的,所述网络请求包括所述目标服务器的域名;以及
所述将所述socks格式的数据发送至目标代理服务器,包括:
将所述socks格式的数据发送至目标代理服务器,以使所述目标代理服务器解析所述socks格式的数据,得到所述域名,通过所述域名建立与所述目标服务器的连接。
5.根据权利要求1-3之一所述的方法,其中,所述预定格式为用户数据报协议UDP格式,所述socks格式为socks5格式,所述目标代理服务器为socks5代理服务器。
6.根据权利要求1-4之一所述的方法,其中,所述目标应用为非系统级应用。
7.一种用于发送数据的装置,包括:
获取单元,被配置成获取目标应用发送的网络请求;
读取单元,被配置成读取所述网络请求对应的网络数据包;
第一转换单元,被配置成将所述网络数据包转换为预定格式的数据;
第二转换单元,被配置成将所述预定格式的数据转换为防火墙安全会话转换协议socks格式的数据;
第一发送单元,被配置成将所述socks格式的数据发送至目标代理服务器。
8.根据权利要求7所述的装置,其中,所述装置还包括:
第二发送单元,被配置成响应于接收到针对所述目标代理服务器的目标端口发送的数据,将所接收到的数据转换为socks格式的数据以及发送至所述目标代理服务器。
9.根据权利要求7所述的装置,其中,所述获取单元包括:
建立模块,被配置成建立虚拟专用网络VPN;
获取模块,被配置成通过所述VPN获取目标应用发送的网络请求。
10.根据权利要求7-9之一所述的装置,其中,所述网络请求是所述目标应用向目标服务器发送的,所述网络请求包括所述目标服务器的域名;以及
所述第一发送单元包括:
发送模块,被配置成将所述socks格式的数据发送至目标代理服务器,以使所述目标代理服务器解析所述socks格式的数据,得到所述域名,通过所述域名建立与所述目标服务器的连接。
11.根据权利要求7-9之一所述的装置,其中,所述预定格式为用户数据报协议UDP格式,所述socks格式为socks5格式,所述目标代理服务器为socks5代理服务器。
12.根据权利要求7-10之一所述的装置,其中,所述目标应用为非系统级应用。
13.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810942105.7A CN109120696A (zh) | 2018-08-17 | 2018-08-17 | 用于发送数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810942105.7A CN109120696A (zh) | 2018-08-17 | 2018-08-17 | 用于发送数据的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109120696A true CN109120696A (zh) | 2019-01-01 |
Family
ID=64853295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810942105.7A Pending CN109120696A (zh) | 2018-08-17 | 2018-08-17 | 用于发送数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109120696A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110740131A (zh) * | 2019-09-30 | 2020-01-31 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104994079A (zh) * | 2015-06-10 | 2015-10-21 | 网宿科技股份有限公司 | 访问请求的处理方法和装置、加速服务器 |
CN106713320A (zh) * | 2016-12-23 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 终端数据传输的方法和装置 |
CN107046495A (zh) * | 2016-02-06 | 2017-08-15 | 阿里巴巴集团控股有限公司 | 用于构建虚拟专用网络的方法、装置和系统 |
CN107360205A (zh) * | 2016-05-09 | 2017-11-17 | 阿里巴巴集团控股有限公司 | 数据报文的传输方法及装置、系统 |
WO2017201399A1 (en) * | 2016-05-20 | 2017-11-23 | Citrix Systems, Inc. | Adaptive session reliability over multiple transports |
-
2018
- 2018-08-17 CN CN201810942105.7A patent/CN109120696A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104994079A (zh) * | 2015-06-10 | 2015-10-21 | 网宿科技股份有限公司 | 访问请求的处理方法和装置、加速服务器 |
CN107046495A (zh) * | 2016-02-06 | 2017-08-15 | 阿里巴巴集团控股有限公司 | 用于构建虚拟专用网络的方法、装置和系统 |
CN107360205A (zh) * | 2016-05-09 | 2017-11-17 | 阿里巴巴集团控股有限公司 | 数据报文的传输方法及装置、系统 |
WO2017201399A1 (en) * | 2016-05-20 | 2017-11-23 | Citrix Systems, Inc. | Adaptive session reliability over multiple transports |
CN106713320A (zh) * | 2016-12-23 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 终端数据传输的方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110740131A (zh) * | 2019-09-30 | 2020-01-31 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN110740131B (zh) * | 2019-09-30 | 2022-11-04 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4363847B2 (ja) | インタラクティブ・テレビ用のデジタル・テレビ・アプリケーション・プロトコル | |
CN106412024B (zh) | 一种页面获取方法和装置 | |
US9264435B2 (en) | Apparatus and methods for access solutions to wireless and wired networks | |
CA2598227C (en) | Mapping an encrypted https network packet to a specific url name and other data without decryption outside of a secure web server | |
US20150156183A1 (en) | System and method for filtering network communications | |
CN108574604A (zh) | 测试方法和装置 | |
CN107925575A (zh) | 用于管理网络通信隐私的技术 | |
US20150135197A1 (en) | Accessing business object resources for a machine-to-machine communication environment | |
CN109218368A (zh) | 实现Http反向代理的方法、装置、电子设备和可读介质 | |
CN107153599B (zh) | 一种记录以及回放用户操作的方法及设备 | |
CN113691589B (zh) | 报文传输方法、装置及系统 | |
CN110493318A (zh) | Http请求信息的处理方法、装置、介质和设备 | |
CN108259457A (zh) | 一种web认证方法及装置 | |
CN113778499B (zh) | 发布服务的方法、装置、设备和计算机可读介质 | |
CN112015383A (zh) | 一种登录方法和装置 | |
TWI294087B (en) | Systems and methods for file transfer management | |
CN109120696A (zh) | 用于发送数据的方法和装置 | |
CN108449186A (zh) | 安全验证方法和装置 | |
CN109379179A (zh) | 用于更新数字证书的方法和装置 | |
CN108989157A (zh) | 用于智能设备控制的方法、装置 | |
Sarker et al. | Learning Python Network Programming | |
CN108512813A (zh) | 用于防止信息被屏蔽的装置和方法 | |
CN114449523B (zh) | 用于卫星测控系统的流量过滤方法、装置、设备及介质 | |
CN109005250A (zh) | 用于访问服务端的方法和装置 | |
CN113824756A (zh) | 文件处理方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190101 |