VC:windows自带的防火墙的相关编程
(VC#.net)在Vista中编程控制防火墙设定——http://www.enet.com.cn/article/2007/0712/A20070712718695.shtml
(VB.net)Programmatically disable/enable Windows firewallhttp://www.codeproject.com/KB/IP/enable_disable_firewall.aspx
VC源码?!好像没有。不过,有下面这些就足够了,其实上面两个都是调用下面提到的ICF接口。
微软官方资料:Internet连接防火墙特性概述
http://www.microsoft.com/china/WindowsXP/pro/techinfo/planning/firewall/icfapis.mspx
本节简要介绍了 ICF(Internet 连接防火墙)的应用程序编程接口 (API)。
Microsoft 在 Platform SDK 中提供了一组 API,以允许独立软件供应商 (ISV) 能与 ICF 交互。以下是可用接口的预览。详细信息,请参考 Platform SDK 。
为了确定是否已在一个接口(网络连接)上启用了 ICF,您首先需要枚举在系统中可用的所有接口。为此,请使用 INetSharingManager::get_INetSharingConfigurationForINetConnection 方法获取特定连接的 INetSharingConfiguration 接口。
确定了要检查的接口之后,请使用 INetSharingConfiguration::get_InternetFirewallEnabled 方法来确定在该连接上是否启用了 ICF。
同时还提供了允许应用程序启用或禁用 ICF 的方法。调用这些方法的结果是,向用户显示一个对话框以确认该操作:
%programname% 正试图禁用 Internet 连接防火墙。这将使您的计算机容易遭受 Internet 安全性威胁。是否允许 %programname% 禁用 Internet 连接防火墙?
%programname%正试图启用 Internet 连接防火墙来帮助您的计算机或网络防范 Internet 安全性威胁。但是,这可能导致某些较早的 Internet 游戏不能正常运行。是否允许 %programname% 启用 Internet 连接防火墙?
其它的重要方法还包括:
注意:没有任何方法可用来设置日志或 ICMP 选项。
丢人哪,弄错了,上面是网络共享配置的接口。这英文不太好,理解力还很差,明显的share,居然把它当作防火墙的接口了,坏就坏在它居然有EnableInternetFirewall、DisableInternetFirewall,也不怪我会误解。
这下我学老实了。打开MSDN,不管37201,输入"Windows Firewall",居然搜索到了。INetFwMgr,就是它了,看名字就知道是网络Net防火墙FileWall管理者Manager接口Interface的意思。
但是要想用起来,还不是那么简单,在网络上找了一个源代码:
http://www.codeproject.com/w2k/WinXPSP2Firewall.asp
它将防火墙操作封装成类,还是比较不错的。
转于:http://zhanyonhu.blog.163.com/blog/static/16186044200873045555246/