[发明专利]一种在使用虚拟网卡的Windows主机上绑定源IP的方法有效
申请号: | 201210587692.5 | 申请日: | 2012-12-28 |
公开(公告)号: | CN103905302B | 公开(公告)日: | 2017-06-06 |
发明(设计)人: | 赵亚;掌晓愚;韩洪慧;叶寒 | 申请(专利权)人: | 上海格尔软件股份有限公司 |
主分类号: | H04L12/70 | 分类号: | H04L12/70;H04L12/741 |
代理公司: | 上海天翔知识产权代理有限公司31224 | 代理人: | 刘粉宝 |
地址: | 200070 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 使用 虚拟 网卡 windows 主机 绑定 ip 方法 | ||
1.一种在使用虚拟网卡的Windows主机上绑定源IP的方法,其特征在于,所述方法使用Windows的LSP技术动态的截获发往虚拟网卡的数据包,将其源IP地址设定为一个非虚拟网卡的IP地址;
所述方法通过在LSP中实现socket处理流程、bind处理流程、connect处理流程、sendto处理流程以及closesocket处理流程,以此来完成源IP的绑定;
所述socket处理流程包括如下步骤:
(1a)在LSP中创建socket;
(2a)将创建的socket关联到一个socket跟踪链表表项,该链表项用于指示一个数据包是否需要绑定一个源IP地址;
所述bind处理流程包括如下步骤:
(1b)在LSP中查询socket跟踪链表表项;
(2b)查看相应的bind地址参数是否为0;若为0,转入步骤(4b);若不为0,转入步骤(3b);
(3b)调用原生bind逻辑;
(4b)更新socket跟踪链表表项,为该socket的后续数据包指示需要绑定源IP地址;
所述connect处理流程包括如下步骤:
(1c)查询socket跟踪链表表项;
(2c)若查找到相应的表项,则调用NeedBind例程,该NeedBind例程的逻辑为判断是否需要为数据包绑定一个源IP地址;
(3c)通过调用NeedBind例程来判断数据包是否需要绑定源IP地址,若需要,则转入步骤(4c);若不需要,则转入步骤(5c);
(4c)调用LSP中实现的bind处理流程;
(5c)调用原生connect;
所述sendto处理流程包括如下步骤:
(1d)查询socket跟踪链表表项;
(2d)若查找到相应的表项,则调用NeedBind例程,该NeedBind例程的逻辑为判断是否需要为数据包绑定一个源IP地址;
(3d)通过调用NeedBind例程来判断数据包是否需要绑定源IP地址,若需要,则转入步骤(4d);若不需要,则转入步骤(5d);
(4d)调用LSP中实现的bind处理流程;
(5d)调用原生sendto;
所述closesocket处理流程包括如下步骤:
(1e)查询socket跟踪链表表项;
(2e)若查找到相应的表项,则删除该socket跟踪链表表项;
(3e)调用原生closesocket。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海格尔软件股份有限公司,未经上海格尔软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210587692.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种手术室用清创护理架
- 下一篇:一种内科手术托架