Windows 防火墙控制
2011-12-05 10:14
369 查看
通常,我们在初次执行某些网络应用程序的时候,Windows防火墙会提示我们是否阻止该程序的网络连接,如下图:
本文主要介绍如何使用COM接口编程来操作Windows防火墙,使程序自动的解除阻止(即将本程序添加到防火墙的例外列表中),打开防火墙,关闭防火墙等。
1. 获得防火墙接口 INetFwProfile
INetFwProfile * m_pIFirewall = NULL ;
INetFwMgr * pIFirewallMgr = NULL;
INetFwPolicy * pIFirewallPolicy = NULL;
CoCreateInstance(__uuidof(NetFwMgr),NULL,CLSCTX_INPROC_SERVER,
__uuidof(INetFwMgr),(void**)&pIFirewallMgr);
pIFirewallMgr->get_LocalPolicy(&pIFirewallPolicy);
pIFirewallPolicy->get_CurrentProfile(&m_pIFirewall);
2. 判断是否已经打开防火墙
VARIANT_BOOL varbOpen = VARIANT_FALSE ;
m_pIFirewall->get_FirewallEnabled(&varbOpen)
3. 打开防火墙
m_pIFirewall->put_FirewallEnabled(VARIANT_TRUE);
4. 关闭防火墙
m_pIFirewall->put_FirewallEnabled(VARIANT_FALSE);
5. 判断一个应用程序是否解除阻止
INetFwAuthorizedApplications* pIFirewallApps = NULL;
INetFwAuthorizedApplication * pIFirewallApp = NULL;
m_pIFirewall->get_AuthorizedApplications(&pIFirewallApps);
pIFirewallApps->Item(bstrAppPath,&pIFirewallApp);
VARIANT_BOOL varbEnabled ;
pIFirewallApp->get_Enabled(&varbEnabled);
6. 解除一个应用程序的阻止
INetFwAuthorizedApplications* pIFirewallApps = NULL;
INetFwAuthorizedApplication * pIFirewallApp = NULL;
m_pIFirewall->get_AuthorizedApplications(&pIFirewallApps);
CoCreateInstance(__uuidof(NetFwAuthorizedApplication),NULL,CLSCTX_INPROC_SERVER,
__uuidof(INetFwAuthorizedApplication),(void**)&pIFirewallApp);
pIFirewallApp->put_ProcessImageFileName(bstrAppPath);
pIFirewallApp->put_Name(bstrName);
pIFirewallApps->Add(pIFirewallApp);
7.判断一个端口是否被阻止
INetFwOpenPorts* pIFirewallOpenPorts = NULL;
INetFwOpenPort * pIFirewallOpenPort = NULL;
m_pIFirewall->get_GloballyOpenPorts(&pIFirewallOpenPorts);
pIFirewallOpenPorts->Item(lnPort,eProtocolType,&pIFirewallOpenPort);
VARIANT_BOOL varbEnabled ;
pIFirewallOpenPort->get_Enabled(&varbEnabled);
8. 解除一个端口的阻止
INetFwOpenPorts* pIFirewallOpenPorts = NULL;
INetFwOpenPort * pIFirewallOpenPort = NULL;
m_pIFirewall->get_GloballyOpenPorts(&pIFirewallOpenPorts);
CoCreateInstance(__uuidof(NetFwOpenPort),NULL,CLSCTX_INPROC_SERVER,
__uuidof(INetFwOpenPort),(void**)&pIFirewallOpenPort);
pIFirewallOpenPort->put_Port(lnPort);
pIFirewallOpenPort->put_Protocol(eProtocolType);
pIFirewallOpenPort->put_Name(bstrShowName);
pIFirewallOpenPorts->Add(pIFirewallOpenPort);
9. 详细代码见附件
附件下载:
Firewall
转自http://wangzai9931.blog.51cto.com/168627/164090
本文主要介绍如何使用COM接口编程来操作Windows防火墙,使程序自动的解除阻止(即将本程序添加到防火墙的例外列表中),打开防火墙,关闭防火墙等。
1. 获得防火墙接口 INetFwProfile
INetFwProfile * m_pIFirewall = NULL ;
INetFwMgr * pIFirewallMgr = NULL;
INetFwPolicy * pIFirewallPolicy = NULL;
CoCreateInstance(__uuidof(NetFwMgr),NULL,CLSCTX_INPROC_SERVER,
__uuidof(INetFwMgr),(void**)&pIFirewallMgr);
pIFirewallMgr->get_LocalPolicy(&pIFirewallPolicy);
pIFirewallPolicy->get_CurrentProfile(&m_pIFirewall);
2. 判断是否已经打开防火墙
VARIANT_BOOL varbOpen = VARIANT_FALSE ;
m_pIFirewall->get_FirewallEnabled(&varbOpen)
3. 打开防火墙
m_pIFirewall->put_FirewallEnabled(VARIANT_TRUE);
4. 关闭防火墙
m_pIFirewall->put_FirewallEnabled(VARIANT_FALSE);
5. 判断一个应用程序是否解除阻止
INetFwAuthorizedApplications* pIFirewallApps = NULL;
INetFwAuthorizedApplication * pIFirewallApp = NULL;
m_pIFirewall->get_AuthorizedApplications(&pIFirewallApps);
pIFirewallApps->Item(bstrAppPath,&pIFirewallApp);
VARIANT_BOOL varbEnabled ;
pIFirewallApp->get_Enabled(&varbEnabled);
6. 解除一个应用程序的阻止
INetFwAuthorizedApplications* pIFirewallApps = NULL;
INetFwAuthorizedApplication * pIFirewallApp = NULL;
m_pIFirewall->get_AuthorizedApplications(&pIFirewallApps);
CoCreateInstance(__uuidof(NetFwAuthorizedApplication),NULL,CLSCTX_INPROC_SERVER,
__uuidof(INetFwAuthorizedApplication),(void**)&pIFirewallApp);
pIFirewallApp->put_ProcessImageFileName(bstrAppPath);
pIFirewallApp->put_Name(bstrName);
pIFirewallApps->Add(pIFirewallApp);
7.判断一个端口是否被阻止
INetFwOpenPorts* pIFirewallOpenPorts = NULL;
INetFwOpenPort * pIFirewallOpenPort = NULL;
m_pIFirewall->get_GloballyOpenPorts(&pIFirewallOpenPorts);
pIFirewallOpenPorts->Item(lnPort,eProtocolType,&pIFirewallOpenPort);
VARIANT_BOOL varbEnabled ;
pIFirewallOpenPort->get_Enabled(&varbEnabled);
8. 解除一个端口的阻止
INetFwOpenPorts* pIFirewallOpenPorts = NULL;
INetFwOpenPort * pIFirewallOpenPort = NULL;
m_pIFirewall->get_GloballyOpenPorts(&pIFirewallOpenPorts);
CoCreateInstance(__uuidof(NetFwOpenPort),NULL,CLSCTX_INPROC_SERVER,
__uuidof(INetFwOpenPort),(void**)&pIFirewallOpenPort);
pIFirewallOpenPort->put_Port(lnPort);
pIFirewallOpenPort->put_Protocol(eProtocolType);
pIFirewallOpenPort->put_Name(bstrShowName);
pIFirewallOpenPorts->Add(pIFirewallOpenPort);
9. 详细代码见附件
附件下载:
Firewall
转自http://wangzai9931.blog.51cto.com/168627/164090
相关文章推荐
- 在软件中控制 Windows 防火墙
- windows 2008 命令行 控制 防火墙 入站 出站 规则
- Windows 防火墙控制
- Windows 防火墙控制
- Windows自带防火墙控制
- 【Vegas原创】windows 2008上启用防火墙后Oracle tnsping不通的解决办法
- Windows 2008 R2防火墙,允许被ping
- SC-控制Windows服务的命令
- Windows Vista User Account Control (UAC) 全新安全模块“用户帐户控制”
- Mac远程控制Mac和Windows
- Windows下通过xmanager远程桌面控制RHEL4
- 远程桌面Windows 2012 R2时,能够控制其它远程用户的Session
- 为花生壳开放端口 可以在不关闭Windows 防火墙的情况下使用花生壳
- windows 7 防火墙无法开启!错误代码5 错误代码0x6D9 解决办法
- [ZT]无法在 Windows XP SP2 中启动 Windows 防火墙服务
- 基于visual c++之windows核心编程代码分析(33)实现防火墙模型
- Windows 服务控制管理器通信的命令行程序
- Windows 防火墙
- 基于visual c++之windows核心编程代码分析(66)实现Windows服务的远程控制
- 在VFP中控制和创建windows 服务程序