比如sygate,是怎么实现的。我觉得可以通过截获IP包再转发可以实现。不只是不是这样,或者有其他的办法?
如果是截获IP包再转发的话,如何截获IP包呢?转发时需要对IP包进行什么样的处理?接收到的数据包怎么返回给请求的机器?
在下比较菜的说,望大虾们畅所欲言,谢了先
------------------------------------
《CSDN论坛新助手 CSDN's forum Explorer》,支持最新改版论坛,回复、浏览“方便”,“快捷”!
下载地址:http://www.seeyou.com.cn/CoolSlob/CSDNExplorer.exe
如果是截获IP包再转发的话,如何截获IP包呢?转发时需要对IP包进行什么样的处理?接收到的数据包怎么返回给请求的机器?
在下比较菜的说,望大虾们畅所欲言,谢了先
------------------------------------
《CSDN论坛新助手 CSDN's forum Explorer》,支持最新改版论坛,回复、浏览“方便”,“快捷”!
下载地址:http://www.seeyou.com.cn/CoolSlob/CSDNExplorer.exe
解决方案 »
- vector<结构体>::iterator 初始化问题
- MFC 如何向EIDT中添加文字,不覆盖
- 如何在一个VC工程中添加多个cpp文件
- 请问大家SendMessage(HWND,WM_GETTEXT,255,BUF)这个API在2K下被限制啦!!??
- 为什么我的Visual Assist X装上去后,我的VS.NET2003显示还是不正确
- 如何动态改变CEDIT控件的背景色?
- gethostbyaddr()的問題?為什麼我通過ip找不到電腦名稱,反過來通過電腦名找電腦卻可以?在網絡鄰居中也可以看到.
- ***********巨难解决的问题,关于串口,大侠路过看看吧!***********
- 高级isapi编程,诚恳请教。
- 各位大虾哪里有WIN32 SDK和NT DDK 下载?还有DRIVERWORKS??
- 如何判断一段时间内鼠标和键盘没有事件?
- 大家能介绍一下自己刚参加编程或软件设计师工作的月薪吗?最好市广州活杭州的,小弟先谢了!
1、sygate的代理是在网络的那一个层上?是IP层吗?
2、sygate是怎么样截获数据包的?
3、转发数据包之前需要对数据包进行什么样处理?还是原封不动转发出去?
2.应该是用原始套接字截获数据包.
3.sygate从内部接口接到一个ip包,把它映射(替换)到外部接口
的[ip,端口]上发出去,当这个包的回应从外部接口到来时,再按照这个映射发到
内部网上对应的[ip,端口]上,这就完成了一次通信。
to kingzai(stevenzhu):
我现在就是用原始套接字侦听ip包的,但是拿到ip包之后,如您所说“把它映射(替换)到外部接口
的[ip,端口]上发出去”,是指将ip包的源地址改为外部接口的地址发出去吗?那么外网返回的结果我怎么区别它是返回给本地请求还是内网其他机器的呢?是在转发之前给每个包作标示吗?
但外部机器给内部某一个client 发送数据的时候,根据PORT判断具体哪个client接收!
那么转发ip包用什么方法呢?也用原始套接字可以吗?
转发IP包可以用原始套接字,也可以用其他的方法,比如winpcap发包.
比如内网机器ping 外网ip的时候是什么情况啊?