求Winpcap做代理网关的代码

来源:百度知道 编辑:UC知道 时间:2024/05/28 01:52:51
将内部从机发送的包的IP地址进行NAT,然后转发向目的地址,来达到代理上网的目的。

中间NAT的步骤实在不会做了……有没有现成的代码可以参考一下?
呃……我是要自己作代理网关……抓取内网的从机发来的包,NAT之后发到外网(外网可以连接Internet);收到Internet的回复后,NAT得到消息返回给内部网络的从机……这样子。

WINPCAP自己就没有去拿网关地址。

可以自己手动修改以下PACKET。DLL里的函数PacketGetNetInfoEx,另它读取注册表的网关地址,当然也要修改响应的数据结构。 要注意的是WINPCAP里PACKET。DLL是分WIN9X版和WIN2K版两个的。

// scan the key to obtain the DefaultGateway
//addby 狗狗 2004-01-15
BufLen = sizeof String;
// Open the key with the addresses
status = RegQueryValueEx(CycleKey,"DefaultGateway",NULL,&RegType,String,&BufLen);
if (status != ERROR_SUCCESS)
{
RegCloseKey(InterfaceKey);
RegCloseKey(CycleKey);
return FALSE;
}
OutputDebugString(String);
StringPos = 0;
for(ngateway = 0;ngateway <* NEntries;nmasks++){
TmpAddr = (struct sockaddr_in *) &(buffer[ngateway].DefaultGateway);

if((TmpAddr->sin_addr.S_un.S_addr = inet_addrU(String + StringPos))!= -1){
TmpAddr->