[发明专利]一种在服务器获取客户端地址的方法在审
申请号: | 201810830753.3 | 申请日: | 2018-07-26 |
公开(公告)号: | CN108989480A | 公开(公告)日: | 2018-12-11 |
发明(设计)人: | 郑晓峰;赵飞;周毅;李宗宇 | 申请(专利权)人: | 杭州云缔盟科技有限公司 |
主分类号: | H04L29/12 | 分类号: | H04L29/12;H04L29/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310000 浙江省杭州市西湖区文*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 网络监控 驱动 服务器获取 客户端地址 真实地址 解析 客户 服务器应用程序 服务器建立 服务器实现 客户端信息 真实IP地址 服务功能 应用程序 转发报文 哈希表 选项 截获 查询 返回 | ||
本发明公开了一种在服务器获取客户端地址的方法,包括以下步骤:a)NAT设备进行在转发报文,在NAT设备与服务器建立连接的ACK报文的TCP选项中添加类型为TCPOPT_SA的选项。b)服务器实现基于WFP的网络监控类型驱动,WFP的网络监控类型驱动截获建立TCP连接的ACK报文,WFP的网络监控类型驱动解析ACK报文并从其中解析出客户端的真实IP,WFP的网络监控类型驱动将客户端的真实IP信息插入到哈希表中。c)SPI从WFP的网络监控类型驱动中查询到相应的socket的真实地址,并返回真实地址给用户。该方法在Windows服务器上运行的应用程序可以获取到客户端的真实IP地址,为运行在Windows平台下的服务器应用程序提供了实现基于客户端信息服务功能的可能性。
技术领域
本发明涉及一种在服务器获取客户端地址的方法。
背景技术
当客户端通过NAT设备访问服务器的时候,NAT设备接收发自客户端的报文并将此报文转发给服务器。在这个过程中,NAT设备会将报文的源IP地址和端口改成自己的IP地址端口,服务端应用程序获取到远端地址是的是NAT设备的IP地址。即服务端无法获取经过NAT设备转发后的数据包的真实源IP地址,即数据包的来源IP地址;同时基于TCP协议的服务端应用程序无法获取经过NAT设备转发后的数据包的真实源IP地址;
本发明主要是解决在经过NAT设备访问服务器的场景下,服务端应用程序如何获取客户端真实IP地址的问题。
发明内容
本发明的目的在于现有技术的不足,提供一种在服务器获取客户端地址的方法。
为了解决上述技术问题,采用如下技术方案:
一种在服务器获取客户端地址的方法,包括以下步骤:
a)NAT设备进行在转发报文,在NAT设备与服务器建立连接的ACK报文的TCP选项中添加类型为TCPOPT_SA的选项。
b)服务器实现基于WFP的网络监控类型驱动,WFP的网络监控类型驱动截获建立TCP连接的ACK报文,WFP的网络监控类型驱动解析ACK报文并从其中解析出客户端的真实IP,WFP的网络监控类型驱动将客户端的真实IP信息插入到哈希表中。
c)SPI从WFP的网络监控类型驱动中查询到相应的socket的真实地址,并返回真实地址给用户。
进一步,在步骤(a)中,TCPOPT_SA的选项中包含客户端的真实IP地址和端口。
进一步,在步骤(b)中,WFP的网络监控类型驱动程序注册处理函数,处理函数为FWPM_LAYER_ALE_FLOW_ESTABLISHED_V4/FWPM_LAYER_ALE_FLOW_ESTABLISHED_V6。
进一步,在步骤(b)中,处理函数的参数中包含有从客户端连接服务器的ACK报文。
进一步,在步骤(b)中,检查ACK报文的TCP选项是否包含TCPOPT_SA,如果存在,从TCPOPT_SA选项中解析出真实IP地址和端口信息,并将真实IP和端口保存到哈希表中。
进一步,在步骤(c)中,服务器通过Winsock SPI截取技术实现对getpeername的hook,当应用程序调用getpeername api获取远端IP地址和端口时,钩子函数getpeername_sa将被调用,getpeername_sa从驱动的哈希表中查询socket对应的流信息。
进一步,在步骤(c)中,如果从哈希表中查询到IP地址和端口,则将IP地址和端口返回给应用程序,否则,getpeername_sa调用系统原有实现。
由于采用上述技术方案,具有以下有益效果:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州云缔盟科技有限公司,未经杭州云缔盟科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810830753.3/2.html,转载请声明来源钻瓜专利网。