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