VB.NET掃描系統(tǒng)服務(wù)實(shí)現(xiàn)原理分析
VB.NET編程語(yǔ)言的功能強(qiáng)大,而且可以輕松的幫助開(kāi)發(fā)人員實(shí)現(xiàn)各種需求。比如對(duì)系統(tǒng)的操作方面,就可以通過(guò)這一語(yǔ)言特定的操作方法來(lái)獲取系統(tǒng)信息,掃描系統(tǒng)服務(wù)等等。我們?cè)谶@里就針對(duì)VB.NET掃描系統(tǒng)服務(wù)的相關(guān)方法做一個(gè)詳細(xì)的介紹。#t#
在大中型企業(yè)信息系統(tǒng)中,對(duì)客戶(hù)端PC的管理,往往是容易出現(xiàn)問(wèn)題的環(huán)節(jié)。因此,很多大公司引入了各種分布式的管理系統(tǒng),例如防病毒方面的NortonAntiVirus,BlackICE防火墻,微軟的SMS(SystemManagementServer),等等,這些系統(tǒng)都會(huì)在客戶(hù)端的系統(tǒng)安裝相應(yīng)的客戶(hù)端軟件,一般都是以服務(wù)的形式出現(xiàn)。
但是由于種種原因,這些服務(wù)會(huì)停止運(yùn)行或者該客戶(hù)機(jī)根本沒(méi)有安裝這些客戶(hù)端服務(wù),這樣管理系統(tǒng)就出現(xiàn)了疏漏,有可能造成問(wèn)題,如因無(wú)法防御病毒而成為病毒源,無(wú)法為該客戶(hù)端發(fā)布軟件,無(wú)法管理客戶(hù)PC等等。在此,我們提供一個(gè)方案,可以定時(shí)按照IP地址掃描網(wǎng)絡(luò),報(bào)告出那些系統(tǒng)的特定的服務(wù)的狀態(tài)。
這個(gè)VB.NET掃描系統(tǒng)服務(wù)方案使用了Microsoft.net技術(shù),同時(shí)也用到了.NETFramework中的,ADO.NET,WMImanagement,XML。其核心是一個(gè)由VB.NET寫(xiě)的程序以及它的兩個(gè)配置文件,配置文件為XML格式,該程序按IP掃描網(wǎng)絡(luò),得到每個(gè)系統(tǒng)的服務(wù)的狀態(tài),如果IP地址沒(méi)有對(duì)應(yīng)系統(tǒng),則忽略該IP,針對(duì)沒(méi)有安裝服務(wù)或服務(wù)停止的系統(tǒng)我們?cè)诹硪粋€(gè)線程中運(yùn)行NBTSTAT命令,得到其機(jī)器名,用戶(hù)名,MAC地址域等信息,以便我們找到機(jī)器解決問(wèn)題。
其次為了保存VB.NET掃描系統(tǒng)服務(wù)的結(jié)果,我們需要一個(gè)很小的數(shù)據(jù)庫(kù)MS-Access或MS-SQLServer都可以,本文使用SQL2000。最后為了呈現(xiàn)出掃描的結(jié)果,以便我們采取行動(dòng),這里我們使用網(wǎng)頁(yè)的形式把數(shù)據(jù)庫(kù)中的結(jié)果展現(xiàn)出來(lái)。
該程序使用兩個(gè)XML格式的配置文件,當(dāng)程序啟動(dòng)時(shí)會(huì)讀入這些配置。其中一個(gè)文件定義了需要掃描的網(wǎng)段,包括排除在外的地址段。另一個(gè)文件定義了連接數(shù)據(jù)庫(kù)的信息,以及數(shù)據(jù)表的定義。這兩個(gè)文件的內(nèi)容如下:
- <IPLIST>
- <IPLANID="192.168.100."><EXPL=”1”H=”30”/></IP>
- <IPLANID="192.168.101."/>
- <IPLANID="192.168.102."/>
- <IPLANID="192.168.103."/>
- <IPLANID="192.168.104."><EXPL=”1”H=”40”/></IP>
- </IPLIST>
該文件定義將要掃描5個(gè)網(wǎng)段,其中兩個(gè)網(wǎng)段有些地址需要排除在外(分配給打印機(jī)等設(shè)備),對(duì)于192.168.100段,我們排除從1到30,對(duì)于192.168.104段我們排除1到40。
- <DBINFO>
- <SERVER>DBServer</SERVER>
- <DATABASE>DB</DATABASE>
- <UID>REPORT</UID>
- <PWD>REPORT</PWD>
- <SERVICETABLE=”SERVICE”>SERVICE</SERVICE>
- </DBINFO>
該文件定義了連接數(shù)據(jù)庫(kù)所需的信息。
- TAG
- Meaning
- <SERVER>
- SCANSERVICE數(shù)據(jù)庫(kù)的服務(wù)器名
- <DATABASE>
- SCANSERVICE數(shù)據(jù)庫(kù)名
- <UID>
- 用于更新SCANSERVICE數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)用戶(hù)名
- <PWD>
- 用于更新SCANSERVICE數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)用戶(hù)的密碼
- <SERVICE>
該TAG的inner定義了我們希望掃描的Service的名字,這里我們假定希望掃描服務(wù)名為SERVICE
該TAG的屬性定義了數(shù)據(jù)庫(kù)中表名,該表用于保存VB.NET掃描系統(tǒng)服務(wù)的結(jié)果。