VC:windows自带的防火墙的相关编程

来源:互联网 发布:ubuntu命令行安装deb 编辑:程序博客网 时间:2024/06/11 21:02

 

    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 的方法。调用这些方法的结果是,向用户显示一个对话框以确认该操作:

    INetSharingConfiguration::DisableInternetFirewall

%programname% 正试图禁用 Internet 连接防火墙。这将使您的计算机容易遭受 Internet 安全性威胁。是否允许 %programname% 禁用 Internet 连接防火墙?

    INetSharingConfiguration::EnableInternetFirewall

%programname%正试图启用 Internet 连接防火墙来帮助您的计算机或网络防范 Internet 安全性威胁。但是,这可能导致某些较早的 Internet 游戏不能正常运行。是否允许 %programname% 启用 Internet 连接防火墙?

其它的重要方法还包括:

  • INetSharingConfiguration::EnumPortMappings:该方法允许您枚举特定接口的端口映射。
  • INetSharingConfiguration::AddPortMapping:该方法允许您在特定接口添加端口映射。
  • INetSharingConfiguration::RemovePortMapping:该方法允许您删除特定接口的端口映射。

注意:没有任何方法可用来设置日志或 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/

 

 

原创粉丝点击