
技术摘要:
本发明实施例公开了一种传递客户端真实IP地址的方法及系统。所述方法包括:客户端向代理服务器发送通信请求,通信请求中携带有客户端IP包,客户端IP包包括客户端真实IP地址;代理服务器响应通信请求,对客户端IP包进行IP包封装,得到与客户端IP包对应的目标代理端IP包 全部
背景技术:
现有采用代理服务器在客户端与后端服务器之间进行通信连接的技术中,彻底地 改变了请求后端服务器服务的来源,隔离了客户端和后端服务器之间直接通信连接,从而 使后端服务器只能看到代理服务器的IP地址,无法看到客户端的真实IP地址,无法满足需 要基于客户端的真实IP地址开展的相关业务。
技术实现要素:
基于此,有必要针对上述问题,提出了一种传递客户端真实IP地址的方法及系统, 用于解决现有技术中采用代理服务器在客户端与后端服务器之间进行通信连接时后端服 务器无法看到客户端的真实IP地址的技术问题。 第一方面,一种传递客户端真实IP地址的方法,应用于采用代理服务器建立客户 端与后端服务器之间的通信连接,所述方法包括: 所述客户端向所述代理服务器发送通信请求,所述通信请求中携带有客户端IP 包,所述客户端IP包包括客户端真实IP地址; 所述代理服务器响应所述通信请求,对所述客户端IP包进行IP包封装,得到与所 述客户端IP包对应的目标代理端IP包,所述目标代理端IP包包括所述客户端真实IP地址; 所述代理服务器基于与所述后端服务器之间的通信连接,将所述目标代理端IP包 发送给所述后端服务器; 所述后端服务器对所述目标代理端IP包进行解析,得到与所述目标代理端IP包对 应的客户端真实IP地址。 在一个实施例中,所述对所述客户端IP包进行IP包封装,得到与所述客户端IP包 对应的目标代理端IP包,包括: 所述代理服务器根据所述客户端IP包设立与所述客户端IP包对应的待处理代理 端IP包; 所述代理服务器在所述待处理代理端IP包中增加IPv6包头部,得到与所述客户端 IP包对应的待封装代理端IP包; 所述代理服务器根据所述客户端IP包对所述待封装代理端IP包的所述IPv6包头 部进行封装,得到与所述客户端IP包对应的目标代理端IP包。 在一个实施例中,所述代理服务器根据所述客户端IP包对所述待封装代理端IP包 的所述IPv6包头部进行封装,得到与所述客户端IP包对应的目标代理端IP包,包括: 所述代理服务器从所述客户端IP包中提取IP地址,得到与所述客户端IP包对应的 待封装IP地址,所述待封装IP地址包括所述客户端真实IP地址,其中,所述客户端真实IP地 4 CN 111586200 A 说 明 书 2/12 页 址存储在区块链中; 所述代理服务器根据所述待封装IP地址更新所述待封装代理端IP包的所述IPv6 包头部的扩展报头; 所述代理服务器将更新所述扩展报头之后的所述待封装代理端IP包作为与所述 客户端IP包对应的目标代理端IP包。 在一个实施例中,当所述客户端采用IPv6协议时,所述客户端真实IP地址是指 IPv6的家乡地址; 所述代理服务器从所述客户端IP包中提取IP地址,得到与所述客户端IP包对应的 待封装IP地址,包括: 所述代理服务器从所述客户端IP包提取家乡地址,得到与所述客户端IP包对应的 IPv6的家乡地址,将与所述客户端IP包对应的IPv6的家乡地址作为所述待封装IP地址。 在一个实施例中,当所述客户端采用IPv4协议时,所述客户端真实IP地址是指 IPv4包的源IP地址,所述代理服务器及所述后端服务器支持IPv4 in IPv6地址转换服务; 所述代理服务器从所述客户端IP包中提取IP地址,得到与所述客户端IP包对应的 待封装IP地址,包括: 所述代理服务器从所述客户端IP包提取源IP地址,得到与所述客户端IP包对应的 IPv4包的源IP地址; 所述代理服务器将与所述客户端IP包对应的IPv4包的源IP地址转换成IPv6的家 乡地址,得到所述待封装IP地址。 在一个实施例中,所述代理服务器根据所述客户端IP包对所述待封装代理端IP包 的所述IPv6包头部进行封装,得到与所述客户端IP包对应的目标代理端IP包,包括: 所述代理服务器获取代理服务器IP地址; 所述代理服务器根据所述代理服务器IP地址更新所述待封装代理端IP包的所述 IPv6包头部的源地址; 所述代理服务器获取所述代理服务器与所述后端服务器之间通信连接的传输协 议类型; 所述代理服务器根据所述传输协议类型更新所述待封装代理端IP包的所述IPv6 包头部的下一扩展头; 所述代理服务器根据所述客户端IP包对更新之后的所述待封装代理端IP包的所 述IPv6包头部进行封装,得到所述目标代理端IP包。 在一个实施例中,所述代理服务器采用Nginx服务器; 所述代理服务器与所述后端服务器的连接的套接字采用原始套接字。 在一个实施例中,所述后端服务器根据所述客户端真实IP地址确定所述客户端的 通信网络,和/或,根据所述客户端真实IP地址确定所述客户端的地理位置信息。 第二方面,本发明还提出了一种传递客户端真实IP地址的系统,所述系统包括:客 户端、代理服务器、后端服务器; 所述客户端,用于向所述代理服务器发送通信请求,所述通信请求中携带有客户 端IP包,所述客户端IP包包括客户端真实IP地址; 所述代理服务器,用于建立客户端与后端服务器之间的通信连接,响应所述通信 5 CN 111586200 A 说 明 书 3/12 页 请求,对所述客户端IP包进行IP包封装,得到与所述客户端IP包对应的目标代理端IP包,所 述目标代理端IP包包括所述客户端真实IP地址,基于与所述后端服务器之间的通信连接, 将所述目标代理端IP包发送给所述后端服务器; 所述后端服务器,用于对所述目标代理端IP包进行解析,得到与所述目标代理端 IP包对应的客户端真实IP地址。 在一个实施例中,所述后端服务器还用于根据所述客户端真实IP地址确定客户端 的通信网络和/或根据所述客户端真实IP地址确定客户端的地理位置信息。 本发明提出的一种传递客户端真实IP地址的方法及系统,采用代理服务器建立客 户端与后端服务器之间的通信连接,将通信请求中携带的客户端IP包中的客户端真实IP地 址封装到与客户端IP包对应的目标代理端IP包,再将目标代理端IP包发送给后端服务器, 后端服务器通过解析目标代理端IP包获取客户端真实IP地址,实现了在采用代理服务器建 立通信连接时后端服务器可以获取到客户端真实IP地址,从而使采用代理服务器建立通信 连接的架构适用于需要基于客户端的真实IP地址开展相关业务的应用场景,提高了采用代 理服务器建立通信连接的架构的公共支持及适配性;而且整个技术方案只需要在代理服务 器中做更改,不会大量增加采用代理服务器建立通信连接的部署难度。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。 其中: 图1为一个实施例中传递客户端真实IP地址的方法的流程图; 图2为图1中传递客户端真实IP地址的方法进行目标代理端IP包封装的流程图; 图3为图2中传递客户端真实IP地址的方法进行IPv6包头部封装的流程图; 图4为图3中传递客户端真实IP地址的方法获取采用IPv6协议的客户端的待封装 IP地址的流程图; 图5为图3中传递客户端真实IP地址的方法获取采用IPv4协议的客户端的待封装 IP地址的流程图; 图6为图2中传递客户端真实IP地址的方法进行IPv6包头部封装的流程图; 图7为图1的传递客户端真实IP地址的方法的时序图; 图8为一个实施例中传递客户端真实IP地址的系统的结构框图; 图9为计算机设备的结构框图。