一种获取数据包真实源IP地址的方法和装置制造方法及图纸

技术编号:17037615 阅读:28 留言:0更新日期:2018-01-13 22:18
本发明专利技术公开了一种获取数据包真实源IP地址的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取数据包;所述数据包中封装私有IP项,所述私有IP项中包括所述数据包的真实源IP地址;解封装所述私有IP项,获取所述数据包的真实源IP地址。该实施方式通过在数据包中封装携带所述数据包真实源IP地址的私有IP项,再解封装所述私有IP项,能够满足服务端获取经过NAT设备转发后的数据包的真实源IP地址的需求。

A method and device for obtaining the real source IP address of a packet

The invention discloses a method and device for obtaining a real source IP address of a data packet, which relates to the field of computer technology. A specific implementation method of the method includes acquiring data packets, encapsulating private IP items in the data package, including the real source IP addresses of the data packets, and encapsulating the private IP items, and obtaining the real source IP addresses of the data packets, and the private IP items. The implementation method encapsulates the private IP item that carries the real source IP address of the packet, and then solves the encapsulation of the private IP item, which can meet the needs of the server to get the real source IP address after the NAT device is forwarded.

【技术实现步骤摘要】
一种获取数据包真实源IP地址的方法和装置
本专利技术涉及计算机
,尤其涉及一种获取数据包真实源IP地址的方法和装置。
技术介绍
基于网络地址转换NAT(NetworkAddressTranslation)技术实现的网络设备,接收客户端发送的数据包,然后修改数据包的来源IP地址和目的IP地址,最后将修改过的数据包转发到服务端。服务端应用程序获取的是被NAT设备修改后的IP地址。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:1.服务端无法获取经过NAT设备转发后的数据包的真实源IP地址,即数据包的来源IP地址;2.基于TCP协议的服务端应用程序无法获取经过NAT设备转发后的数据包的真实源IP地址;3.基于UDP协议的服务端应用程序无法获取经过NAT设备转发后的数据包的真实源IP地址。
技术实现思路
有鉴于此,本专利技术实施例提供一种获取数据包真实源IP地址的方法和装置,能够满足服务端无法获取经过NAT设备转发后的数据包的真实源IP地址的需求。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种获取数据包真实源IP地址的方法,包括:获取数据包;所述数据包中封装私有IP项,所述私有IP项中包括所述数据包的真实源IP地址;解封装所述私有IP项,获取所述数据包的真实源IP地址。可选地,所述私有IP项包括:类型type字段、长度len字段、数据字段;所述数据字段中保存所述数据包的真实源IP地址。可选地,按照以下方法在所述数据包中封装私有IP项:获取所述私有IP项占用的字节数A,其中A为正整数;将数据包的IP首部向左移动私有IP项占用的字节数A;在移动后的IP首部之后写入所述私有IP项。可选地,所述解封装所述私有IP项包括:在服务端的IP层中对所述私有IP选项进行解封装。可选地,所述获取所述数据包的真实源IP地址之后还包括:发送获取的所述数据包的真实源IP地址至服务端应用程序。可选地,所述服务端应用程序包括TCP应用程序;所述发送获取的所述数据包的真实源IP地址至服务端应用程序包括:将解封装后获取的所述数据包的真实源IP地址,存入内核中的用于保存TCP连接信息的数据结构中;当接收TCP应用程序查询所述数据包的来源IP地址请求时,将所述数据结构中的数据包的真实源IP地址发送至TCP应用程序。可选地,所述服务端应用程序包括UDP应用程序;所述发送获取的所述数据包的真实源IP地址至服务端应用程序包括:当接收UDP应用程序查询所述数据包的来源IP地址请求时,将解封装后获取的所述数据包的真实源IP地址发送至UDP应用程序。为实现上述目的,根据本专利技术实施例的另一方面,提供了一种发送数据包真实源IP地址的方法,包括:在数据包中封装私有IP项,所述私有IP项中包括所述数据包的真实源IP地址;发送封装后的所述数据包至服务端。可选地,所述私有IP项包括:类型type字段、长度len字段、数据字段;所述数据字段中保存所述数据包的真实源IP地址。可选地,按照以下方法在所述数据包中封装私有IP项:获取所述私有IP项占用的字节数A,其中A为正整数;将数据包的IP首部向左移动私有IP项占用的字节数A;在移动后的IP首部之后写入所述私有IP项。为实现上述目的,根据本专利技术实施例的另一方面,提供了一种获取数据包真实源IP地址的装置,其特征在于,包括:数据包获取模块、解封装模块;其中,数据包获取模块,用于获取数据包;所述数据包中封装私有IP项,所述私有IP项中包括所述数据包的真实源IP地址;解封装模块,用于解封装所述私有IP项,获取所述数据包的真实源IP地址。可选地,所述私有IP项包括:类型type字段、长度len字段、数据字段;所述数据字段中保存所述数据包的真实源IP地址。可选地,所述数据包获取模块用于:获取所述私有IP项占用的字节数A,其中A为正整数;将数据包的IP首部向左移动私有IP项占用的字节数A;在移动后的IP首部之后写入所述私有IP项。可选地,所述解封装模块用于:在服务端的IP层中对所述私有IP选项进行解封装。可选地,所述装置还包括:发送模块;所述发送模块,用于发送获取的所述数据包的真实源IP地址至服务端应用程序。可选地,所述服务端应用程序包括TCP应用程序;所述发送模块通过以下方式发送所述数据包的真实源IP地址:所述获取所述数据包的真实源IP地址包括:将解封装后获取的所述数据包的真实源IP地址,存入内核中的用于保存TCP连接信息的数据结构中;当接收到TCP应用程序查询所述数据包的来源IP地址请求时,将所述数据结构中的数据包的真实源IP地址返回至TCP应用程序。可选地,所述服务端应用程序包括UDP应用程序;所述发送模块通过以下方式发送所述数据包的真实源IP地址:所述获取所述数据包的真实源IP地址包括:当接收到UDP应用程序查询所述数据包的来源IP地址请求时,将解封装后获取的所述数据包的真实源IP地址返回至UDP应用程序。为实现上述目的,根据本专利技术实施例的再一方面,提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本专利技术实施例所提供的获取数据包真实源IP地址的方法。为实现上述目的,根据本专利技术实施例的再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行本专利技术所提供的获取数据包真实源IP地址的方法。根据本专利技术的技术方案,上述专利技术中的一个实施例具有如下优点或有益效果:通过在数据包中封装携带所述数据包真实源IP地址的私有IP项,再解封装所述私有IP项,能够满足服务端获取经过NAT设备转发后的数据包的真实源IP地址的需求。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的获取数据包真实源IP地址的方法的主要流程的示意图。图2为根据本专利技术实施例的获取数据包真实源IP地址的方法的私有IP选项格式图。图3为现有技术中应用数据封装的主要流程示意图。图4为根据本专利技术实施例的获取数据包真实源IP地址的方法的数据包中封装私有IP项示意图。图5是根据本专利技术实施例的获取数据包真实源IP地址的装置的主要模块的示意图。图6是本专利技术实施例可以应用于其中的示例性系统架构图。图7是适于用来实现本专利技术实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。本专利技术实施例中出现的重要技术术语释义如下:所述数据包为TCP/IP协议定义的一个在因特网上传输的包,可以包括但不限于为IPv4数据包,即满足互联网协议IP(InternetProtocol,IP)第四版的数据包。所述TCP/IP(TransmissionControlProtocol/Internet本文档来自技高网...
一种获取数据包真实源IP地址的方法和装置

【技术保护点】
一种获取数据包真实源IP地址的方法,其特征在于,包括:获取数据包;所述数据包中封装私有IP项,所述私有IP项中包括所述数据包的真实源IP地址;解封装所述私有IP项,获取所述数据包的真实源IP地址。

【技术特征摘要】
1.一种获取数据包真实源IP地址的方法,其特征在于,包括:获取数据包;所述数据包中封装私有IP项,所述私有IP项中包括所述数据包的真实源IP地址;解封装所述私有IP项,获取所述数据包的真实源IP地址。2.根据权利要求1所述的方法,其特征在于,所述私有IP项包括:类型type字段、长度len字段、数据字段;所述数据字段中保存所述数据包的真实源IP地址。3.根据权利要求1所述的方法,其特征在于,按照以下方法在所述数据包中封装私有IP项:获取所述私有IP项占用的字节数A,其中A为正整数;将数据包的IP首部向左移动私有IP项占用的字节数A;在移动后的IP首部之后写入所述私有IP项。4.根据权利要求1所述的方法,其特征在于,所述解封装所述私有IP项包括:在服务端的IP层中对所述私有IP选项进行解封装。5.根据权利要求1或4所述的方法,其特征在于,所述获取所述数据包的真实源IP地址之后还包括:发送获取的所述数据包的真实源IP地址至服务端应用程序。6.根据权利要求5所述的方法,其特征在于,所述服务端应用程序包括TCP应用程序;所述发送获取的所述数据包的真实源IP地址至服务端应用程序包括:将解封装后获取的所述数据包的真实源IP地址,存入内核中的用于保存TCP连接信息的数据结构中;当接收到TCP应用程序查询所述数据包的来源IP地址请求时,将所述数据结构中的数据包的真实源IP地址发送至TCP应用程序。7.根据权利要求5所述的方法,其特征在于,所述服务端应用程序包括UDP应用程序;所述发送获取的所述数据包的真实源IP地址至服务端应用程序包括:当接收到UDP应用程序查询所述数据包的来源IP地址请求时,将解封装后获取的所述数据包的真实源IP地址发送至UDP应用程序。8.一种发送数据包真实源IP地址的方法,其特征在于,包括:在数据包中封装私有IP项,所述私有IP项中包括所述数据包的真实源IP地址;发送封装后的所述数据包至服务端。9.根据权利要求8所述的方法,其特征在于,所述私有IP项包括:类型type字段、长度len字段、数据字段;所述数据字段中保存所述数据包的真实源IP地址。10.根据权利要求8所述的方法,其特征在于,按照以下方法在所述数据包中封装私有IP项:获取所述私有IP项占用的字节数A,其中A为正整数;将数据包的IP首部向左移...

【专利技术属性】
技术研发人员:李宁刘海锋
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1