在外掛程式中增加檢測防火牆是否開啟的功能

2021-06-28 07:58:03 字數 1557 閱讀 3875

在掃瞄專案的外掛程式中增加一項檢測防火牆的功能:

1、宣告乙個儲存防火牆狀態的列舉型別並且例項化乙個物件作為全域性變數

//@author denny

// \brief 防火牆狀態

enum firewall_status

; firewall_status m_efirewall;

2、通過函式從登錄檔中獲取防火牆狀態

//獲取防火牆狀態

firewall_status csysteminfo::getfirewallstatus()

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))

if (1 == dwdata)

else if (0 == dwdata)

regclosekey(phkey);

log4cplus_info(*g_root, "防火牆狀態: " << status);

log4cplus_trace(*g_root, "獲取防火牆狀態結束");

return status;

}

3、將獲取的防火牆狀態的值賦給全域性變數

m_efirewall = getfirewallstatus(); //獲取防火牆狀態的返回值

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)

}

6、將狀態的值放入到vector容器中

vecinfo.push_back(szfirewall);//將防火牆的狀態值放入vector容器
7、最後和其他檢測專案例如系統資訊,使用者資訊,網路狀態等等一起在vector容器中交給其他操作實現

在 Windows 防火牆中開啟埠

如果 windows 防火牆阻止某一程式,而您希望允許該程式通過防火牆進行通訊,通常可以通過在 windows 防火牆允許的程式列表 也稱為 例外列表 中選中該程式來實現。若要了解如何進行此操作,請參閱允許程式通過 windows 防火牆進行通訊。但是,如果沒有列出該程式,則可能需要開啟乙個埠。例如...

linux 如何檢視防火牆是否開啟

service iptables status可以檢視到iptables服務的當前狀態 但是即使服務執行了,防火牆也不一定起作用,你還得看防火牆規則的設定 iptables lchkconfig命令只是檢視和設定服務的自動啟動情況,並不能反映當前服務的狀態 service iptables stat...

在iptables防火牆下開啟vsftpd的埠

在開啟vsftpd埠後發現用客戶端工具能登陸,但無法瀏覽檔案和新建檔案.此時看了一下ftp的協議,發現ftp有主動模式和被動模式.在服務端開21埠是讓客戶端進來,並沒有出去的埠,還在服務端開啟出去的埠,最後還要新增ftp相應的模組,整個操作有點複雜,今天寫下來對自己以後加深印像.1.安裝vsftpd...