急等,最好能提供源码。谢谢
解决方案 »
- 请问UCI的数据库中,某种数据有一项描述是Missing Values?,这个“ Missing Values?”是什么意思?
- 调试信息unused=???是什么意思?
- AfxBeginThread传递结构体在debug下出错 release正常
- 一个应用程序监听多个tcp端口(急)
- 关于一个属性页类CMyPropertySheet用法的问题
- 谁能帮调一下我的代码啊,不行了,高分求
- vc串口通信棘手的问题
- xslt中,如何把#等特殊符号表示成文本?我要用匹配if test=“#.......”
- 通过ODBC连接ACCESS数据库,怎样对其显示的记录进行编辑?
- 输入法的高手请进来!(插入符位置的问题)
- 想学WINDOWS SOCKET 编程,不知道从何学起??
- 无模式对话框在单文档窗体内移动
偶像的黄昏:WinpCap好像只能截获数据包而不能阻塞数据包。它所截获的数据包只是一个拷贝,用来做数据包的分析是很不错,但是不能完成过滤数据包的功能。】gracezhu:请你把网址告诉我吧,谢谢!
关 键 字:API,防火墙,iphelp
本文章自 2004-1-17 添加到 C++ Builder 研究 网站以来,已被阅读 955 次。 --------------------------------------------------------------------------------
利用操作系统提供的API编写防火墙
作者: zzwinner ,如转载请保证本文档的完整性,并注明出处。
欢迎光临 C++ Builder 研究,http://www.ccrun.com/doc/go.asp?id=593
/*
利用操作系统提供的API编写防火墙.
该程序涉及到的API说明请访问微软的MSDN Library
代码在C++ Builder 5编译通过
如果您想和我交流请email:[email protected]
*/
#pragma hdrstop
#include "windows.h"
#include "Fltdefs.h"
// 需要加载"iphlpapi.lib"
//---------------------------------------------------------------------------#pragma argsused
int main(int argc, char* argv[])
{
// 一个创建网络包过滤接口
INTERFACE_HANDLE hInterface;
PfCreateInterface(0,
PF_ACTION_DROP,//PF_ACTION_FORWARD,
PF_ACTION_DROP,//PF_ACTION_FORWARD,
FALSE,
TRUE,
&hInterface); // 绑定需要网络包过滤的IP地址
BYTE localIp[] = {192,168,0,2};
PfBindInterfaceToIPAddress(hInterface, PF_IPV4, localIp);
// 现在我们开始过滤HTTP协议的的接口
FILTER_HANDLE fHandle;
// 填充过滤包的规则结构
PF_FILTER_DESCRIPTOR inFilter;
inFilter.dwFilterFlags = FD_FLAGS_NOSYN; //一直添这个值
inFilter.dwRule = 0; //一直添这个值
inFilter.pfatType = PF_IPV4; //用 ipV4 地址
inFilter.SrcAddr = localIp; //设置本地IP地址
inFilter.SrcMask = "\xff\xff\xff\xff"; //设置本地子网掩码
inFilter.wSrcPort = FILTER_TCPUDP_PORT_ANY; //任意来源端口
inFilter.wSrcPortHighRange = FILTER_TCPUDP_PORT_ANY;
inFilter.DstAddr = 0; //任意目标地址
inFilter.DstMask = 0;
inFilter.wDstPort = 80; //目标端口 80(http 服务)
inFilter.wDstPortHighRange = 80;
inFilter.dwProtocol = FILTER_PROTO_TCP; // 过滤的协议
// 加入一个过滤接口
PfAddFiltersToInterface(hInterface, 1, &inFilter, 0, NULL, &fHandle);
// 请在这设置一个调试断点,然后看看你的IE是否不能访问WEB页. :)
// 移除过滤接口
PfRemoveFilterHandles(hInterface, 1, &fHandle);
PfUnBindInterface(hInterface);
PfDeleteInterface(hInterface);
return 0;
}
四不象开始列出的那段程序代码我编译测试过,好像不能起到作用,不知道为什么。
另外。我找到了CodeProject,谢谢。
会思考的草?winpcap要怎么修改呢?有没有相关的程序啊?有的话,请发给我,谢谢。
[email protected]
谢谢大家的建议。
COdeRoject上的我也找到了。早知到大家这么热情,我的分就应该多给点。
只可惜啊,所以分少就请大家原谅