在插件中增加检测防火墙是否开启的功能
来源:互联网 发布:amazon流量软件 编辑:程序博客网 时间:2024/05/16 05:30
在扫描项目的插件中增加一项检测防火墙的功能:
1、声明一个存储防火墙状态的枚举类型并且实例化一个对象作为全局变量
//@author Denny// \brief 防火墙状态enum FIREWALL_STATUS{FIREWALLUNKNOWN = 0,FIREWALLCLOSE,FIREWALLOPEN}; FIREWALL_STATUS m_eFirewall;
2、通过函数从注册表中获取防火墙状态
//获取防火墙状态FIREWALL_STATUS CSystemInfo::GetFireWallStatus(){LOG4CPLUS_TRACE(*g_Root, "获取防火墙状态开始");FIREWALL_STATUS status = FIREWALLUNKNOWN;HKEY pHkey;TCHAR chSubKey[] = _T("SYSTEM\\CurrentControlSet\\services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile");if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_LOCAL_MACHINE, chSubKey, 0, KEY_READ, &pHkey)){LOG4CPLUS_ERROR(*g_Root, "打开子键失败");return status;}DWORD type = REG_DWORD; //EnableFireWall的类型DWORD dwdata = -1;//EnableFireWall的值DWORD dwsize = sizeof(DWORD);//EnableFireWall的大小if (ERROR_SUCCESS != RegQueryValueEx(pHkey, _T("EnableFireWall"), 0, &type, (LPBYTE)&dwdata, &dwsize)){LOG4CPLUS_ERROR(*g_Root, "查询键值失败");RegCloseKey(pHkey);return status;}if (1 == dwdata){status = FIREWALLOPEN;}else if (0 == dwdata){status = FIREWALLCLOSE;}RegCloseKey(pHkey);LOG4CPLUS_INFO(*g_Root, "防火墙状态: " << status);LOG4CPLUS_TRACE(*g_Root, "获取防火墙状态结束");return status;}
3、将获取的防火墙状态的值赋给全局变量
m_eFirewall = GetFireWallStatus(); //获取防火墙状态的返回值</span>
4、用string_t类型的数据存储状态值
pugi::string_t szWinVer, szWinSP, szWin64, szUserName, szAdmin, szInternet, szUAC,szFireWall;szUserName = m_szUserName;
5、在_ParseSystemInfo中解析防火墙状态
void CSystemInfo::_ParseSystemInfo(pugi::string_t& szWinVer, pugi::string_t& szWinSP, pugi::string_t& szWin64,pugi::string_t& szAdmin, pugi::string_t& szInternet, pugi::string_t& szUAC, pugi::string_t& szFireWall){<span style="white-space:pre"></span>switch (m_eFirewall){case FIREWALLUNKNOWN:szFireWall = _T("查询注册表失败");break;case FIREWALLOPEN:szFireWall = _T("开启");break;case FIREWALLCLOSE:szFireWall = _T("关闭");break;default:szFireWall = _T("未知");break;}}
6、将状态的值放入到vector容器中
vecInfo.push_back(szFireWall);//将防火墙的状态值放入vector容器
7、最后和其他检测项目例如系统信息,用户信息,网络状态等等一起在vector容器中交给其他操作实现
0 0
- 在插件中增加检测防火墙是否开启的功能
- 检测是否开启推送通知功能
- Android检测辅助功能是否开启
- Linux中在防火墙中开启80端口的例子
- Linux中在防火墙中开启80端口的例子
- Linux中在防火墙中开启80端口的例子
- Linux中在防火墙中开启80端口的例子
- 在eclipse中增加myeclipse的插件
- CentOS在防火墙中开启端口
- windows服务器中检测PHP SSL是否开启以及开启SSL的方法
- windows服务器中检测PHP SSL是否开启以及开启SSL的方法
- Eclipse 中开启断言检测功能
- Android 检测辅助功能是否开启,并调整设置页面
- Android 检测辅助功能是否开启,并调整设置页面
- Android 检测服务是否开启的方法
- 检测扩展是否开启的方法
- 检测蓝牙是否开启
- 检查是否开启了防火墙
- 【Android 一般进阶】总结Parcelable和Serializable的区别
- Wireshark使用教程:第1章 介绍
- 接口配置锦囊妙计之二——端口隔离
- C技巧:结构体参数转成不定参数
- 一篇不错的关于jsp session的介绍(转)
- 在插件中增加检测防火墙是否开启的功能
- Java多线程编程-使用JDK1.6的线程池
- 获取目录中所有含有特定后缀名的文件
- jquery的slideUp、slideDown函数在IE中的bug
- BASIC-6 杨辉三角形
- 二维码在ERP中的应用
- 计划
- FindBugs作为eclipse插件和ant工具的安装、使用
- jquery鼠标悬停图片上下滚动切换