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地址。
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。