開(kāi)發(fā)嵌入式IE瀏覽器監(jiān)控程序

字號(hào):

隨著網(wǎng)絡(luò)的發(fā)展和普及,對(duì)網(wǎng)絡(luò)的監(jiān)控日益成為網(wǎng)絡(luò)安全的必然要求,也是管理和維護(hù)網(wǎng)絡(luò)的一個(gè)有效手段。當(dāng)前已經(jīng)有多種應(yīng)用比較廣泛的網(wǎng)絡(luò)監(jiān)控和過(guò)濾程序,如美萍網(wǎng)管、we-blocker等,它們都可以實(shí)現(xiàn)基于網(wǎng)絡(luò)URL和IP地址的監(jiān)控和過(guò)濾功能。
    本文將對(duì)如何開(kāi)發(fā)一個(gè)嵌入到IE瀏覽器中的監(jiān)控程序進(jìn)行介紹,該程序可以根據(jù)網(wǎng)絡(luò)URL和IP地址進(jìn)行監(jiān)控和過(guò)濾,并且記錄系統(tǒng)日志,從而使你對(duì)IE(當(dāng)然是使用它的用戶)的所有操作一覽無(wú)余。相信通過(guò)閱讀本文,會(huì)加深你對(duì)網(wǎng)絡(luò)監(jiān)控程序的理解,以及提高你的COM編程能力和數(shù)據(jù)庫(kù)編程能力。
    本文在Delphi 6開(kāi)發(fā)環(huán)境下實(shí)現(xiàn),數(shù)據(jù)庫(kù)使用桌面數(shù)據(jù)庫(kù)Access 2000。
    基礎(chǔ)知識(shí)
    1.COM編程
    COM(Component Object Model,組建對(duì)象模型)是微軟公司(Microsoft Company)提出的二進(jìn)制通信規(guī)范,用于軟件組件之間的跨越多個(gè)進(jìn)程、機(jī)器、硬件和操作系統(tǒng)的互操作,它是一項(xiàng)通過(guò)接口(Interface)透明的傳遞封裝數(shù)據(jù)的技術(shù),并且獨(dú)立于語(yǔ)言和操作平臺(tái)。一個(gè)COM對(duì)象是實(shí)現(xiàn)一個(gè)或者若干個(gè)接口的對(duì)象,即COM對(duì)象借助接口輸出它所提供的服務(wù)。
    2.IE瀏覽器的體系結(jié)構(gòu)
    IE瀏覽器的體系結(jié)構(gòu)如圖1所示。其中MSHTML是位于SHDOCVW和HTML頁(yè)面之間的COM對(duì)象,SHDOCVW對(duì)象用于處理頁(yè)面的顯示,而MSHTML用于處理頁(yè)面的語(yǔ)法分析,并且將頁(yè)面中的標(biāo)記轉(zhuǎn)換為元素。MSHTML是一個(gè)COM服務(wù)器,允許COM客戶端程序訪問(wèn)它對(duì)外提供的服務(wù)。
    實(shí)現(xiàn)IE瀏覽器嵌入式編程的基本方法是建立COM對(duì)象,從而以COM客戶端程序的形式和MSHTML COM服務(wù)器建立連接,然后通過(guò)接口回調(diào)實(shí)現(xiàn)需要的控制功能。也即首先建立COM對(duì)象,實(shí)現(xiàn)系統(tǒng)規(guī)定的若干接口,然后注冊(cè)COM對(duì)象,并且將COM對(duì)象的有關(guān)信息寫(xiě)入到IE瀏覽器擴(kuò)展功能指定的注冊(cè)表位置。