- 相關(guān)推薦
透視Windows 2003的Web接口的方法參考
透視Windows 2003的Web接口
Web管理接口(Web
Management
Interface)在Windows
Server
2003中是一項非常值得網(wǎng)絡(luò)用戶使用的功能,這項功能主要的目的就是為了向一些有權(quán)限的網(wǎng)絡(luò)用戶在無法進行本機維護時,提供遠程的Web管理接口服務(wù)。下面筆者對四項常見的Web接口管理服務(wù)進行一下簡單的介紹。
打印服務(wù)器的Web接口
打印服務(wù)器是Windows
Server
2003服務(wù)器中的一種,它是實現(xiàn)資源共享的重要組成部分。在Windows
Server
2003中,如果打印服務(wù)器安裝了IIS服務(wù)器,則擁有權(quán)限的網(wǎng)絡(luò)用戶就可以通過IE等瀏覽器來管理打印服務(wù)器,域中的用戶也可以通過瀏覽器來安裝打印機、管理自己打印的文檔等。這種方便的管理模式就是“打印機服務(wù)器Web接口管理方式”。其實現(xiàn)的過程如下:
首先安裝IIS
6.0和相關(guān)的遠程管理組件。點擊“開始→控制面板→添加/刪除程序”,在“添加或刪除程序”窗口中點擊“添加/刪除Windows組件”按鈕,接著在彈出的“Windows組件向?qū)А贝翱谥羞x擇“應(yīng)用程序服務(wù)器”。
雙擊“應(yīng)用程序服務(wù)器”后,在彈出的窗口中勾選“Internet信息服務(wù)(IIS)”。因為要設(shè)置打印機服務(wù)器可以使用Web接口方式的管理,所以還需要接著點擊“詳細信息”按鈕。在彈出的窗口中勾選“Internet打印”選項,才能實現(xiàn)Web打印及管理打印機(圖1)。
在組件安裝完畢后,就可以在局域網(wǎng)中的任何一臺計算機上輸入打印服務(wù)器名稱/printers/(如192.100.100.16/printers/)進入打印機服務(wù)器的Web接口管理頁面了。在該頁面可以看到這臺服務(wù)器上的所有打印機及狀態(tài)。
終端服務(wù)器的Web接口
終端服務(wù)器是一種可以讓有權(quán)限的遠程網(wǎng)絡(luò)用戶,通過桌面界面登錄的方式對服務(wù)器進行管理的服務(wù)。一般來說,我們都是通過“遠程桌面連接”功能實現(xiàn)客戶端與終端服務(wù)器之間的連接。
在Windows
Server
2003中,用戶只要讓終端服務(wù)器搭配IIS服務(wù)器,就可以在客戶端通過使用IE瀏覽器(4.0以上版本)完成與終端服務(wù)器的連接、登錄與管理操作。這項功能就是下面將要講述的“遠程桌面Web連接”功能。它的主要目的就是讓管理員不必在每臺計算機上都安裝“遠程桌面連接”程序,就可以通過Web接口(瀏覽器)來連接終端服務(wù)器。
首先安裝IIS
6.0,并在安裝的過程中雙擊“Internet信息服務(wù)(IIS)”,在打開的窗口中勾選“萬維網(wǎng)服務(wù)”。接著雙擊“萬維網(wǎng)服務(wù)”,在彈出的窗口中勾選“遠程桌面Web連接”后,開始安裝選中的組件。
在安裝該組件后,可以在遠程計算機的IE地址欄中輸入服務(wù)器IP地址或名稱/tsweb/(如http://192.100.100.16/tsweb/)即可訪問終端服務(wù)器了。在“遠程桌面Web連接”頁面中輸入服務(wù)器的IP地址并設(shè)置好分辨率大小后,點擊“連接”按鈕就可以登錄到終端服務(wù)器的登錄界面。輸入正確的用戶名和密碼就可以登錄到該服務(wù)器的桌面環(huán)境。
提示:如果出現(xiàn)無法連接到終端服務(wù)器的情況,請確認終端服務(wù)器的遠程桌面功能是否激活,即右鍵點擊“我的電腦”,在彈出的菜單中選擇“屬性”,在屬性窗口中的“遠程”選項卡設(shè)置界面,勾選“允許用戶遠程連接這臺計算機”即可。
流媒體服務(wù)器的Web接口
在Windows
Server
2003中,架設(shè)既支持網(wǎng)絡(luò)廣播又可進行視頻點播的Windows
Media流媒體服務(wù)器是一件很容易的事情,但你想過沒有,我們同樣可以通過Web接口來管理流媒體服務(wù)器。
在“Windows組件向?qū)А贝翱谥泄催x“Windows
Media
Services”,并進入該選項的詳細設(shè)置窗口,勾選“用于Web的Windows
Media
Services管理器”項(圖2)。從隨后彈出的“Windows
Media
Services安裝警告”提示框中,可以看到當前選中的組件需要IIS
6.0的支持。此時請點擊“確定”按鈕(IIS
6.0組件將被自動選中)。
在上述組件安裝完畢后,就可以在遠程計算機的IE瀏覽器地址欄中輸入http://流媒體服務(wù)器IP地址8080/(如http://192.100.100.16:8080/default.asp)使用Web接口管理流媒體服務(wù)器了。輸入網(wǎng)址并按回車鍵后,就可以看到Windows
Media
Services的Web接口管理頁面了。
為了安全考慮(防止其他用戶管理Windows
Media
Services),大家可以在退出Web接口管理頁面時,輸入網(wǎng)址http://192.100.100.16:8080/WMSLogOff.asp來注銷本次管理。
遠程維護Web接口
遠程維護功能是一項非常重要的功能,它可以幫助網(wǎng)絡(luò)管理員通過Web接口來完成服務(wù)器的多個具體服務(wù)項目的管理維護操作,也就是遠程進入IIS
6.0
Web接口管理頁面。
在“Windows組件向?qū)А贝翱谥幸来芜x擇“應(yīng)用程序服務(wù)器”、“Internet信息服務(wù)(IIS)”、“萬維網(wǎng)服務(wù)”,并在“萬維網(wǎng)服務(wù)”中勾選“遠程管理(HTML)”,最后點擊“確定”按鈕進行組件的安裝。
在完成上述操作后,就可以在局域網(wǎng)中輸入“https://服務(wù)器名稱或IP地址?8098”這樣的地址(在遠程計算機中只能輸入“服務(wù)器IP地址:8098”)來訪問Windows
Server
2003的IIS
6.0的Web接口管理頁面。
在該頁面中可以查看或配置服務(wù)器的運行日志文件、網(wǎng)站IP地址、DNS后綴、域。此外還能夠創(chuàng)建、編輯、刪除服務(wù)器上的用戶和組名單,甚至可以遠程重新啟動服務(wù)器、關(guān)閉服務(wù)器。
通過對Web接口管理實例的講解,大家是不是感到Windows
Server
2003的Web接口管理功能很強大呢?但筆者要強調(diào)的是,Web接口管理會因用戶的管理是否妥當出現(xiàn)不同等級的安全隱患,所以請大家謹慎使用Web接口管理功能。
Win2003中IE安全區(qū)域的設(shè)置技巧
概要
本文介紹了如何配置“域名系統(tǒng)”(DNS)
服務(wù)器,使其承載可從外部訪問(即從Internet
訪問)的
Web
站點。
如何獲取IP地址
若要承載可從外部訪問的Web站點,必須從您的
Internet
服務(wù)提供商
(ISP)
那里獲取一個公用
IP
地址。并將此IP地址指定到DNS服務(wù)器所連接防火墻或路由器的外部接口
如何注冊域名
通過
Internet
域名注冊管理機構(gòu)(這樣的管理機構(gòu)被稱為注冊機構(gòu))為您的組織注冊一個父級或二級
DNS
域名。
各注冊機構(gòu)的注冊過程可能會有所不同,但您還是可以按以下步驟來注冊域名:
進行搜索,確認要注冊的名稱是否可用。
提供該帳戶的聯(lián)系信息和交費信息(包括電子郵件地址)。
鍵入主從DNS服務(wù)器的完全合格的域名稱
(FQDN)。
備注:這些是ISP提供的公用IP地址。
支付年費或作好支付年費的準備。
如何配置Web服務(wù)器
安裝和配置Microsoft
Internet信息服務(wù)
(IIS)(如果尚未安裝)。
如何為Web服務(wù)器創(chuàng)建DNS項
請為配置了IIS的DNS
服務(wù)器創(chuàng)建別名或
CNAME
記錄。這樣就可以確保外部主機能夠使用“www”主機名來連接您的Web服務(wù)器。創(chuàng)建方法是:
打開DNS管理單元。方法是:單擊開始,指向管理工具,然后單擊
DNS。
在DNS下,展開“主機名”(主機名是DNS服務(wù)器的主機名)。
展開正向搜索區(qū)域。
在正向搜索區(qū)域下,右鍵單擊所需區(qū)域(例如,域名.com。),然后單擊新建別名(CNAME)。
在“別名”框中,鍵入www。
在“目標主機的完全合格的名稱”框中,鍵入安裝
IIS
的
DNS
服務(wù)器的完全合格的主機名。例如,鍵入
dns.域名.com,然后單擊確定。
Oracle 10g中獲取DUAL表記錄數(shù)
Oracle中的DUAL表是很特殊的一張表,這種表只有一個字段,一條記錄。Oracle很多查詢的結(jié)果都通過訪問這張表實現(xiàn)。所以很多包都依賴這張表。
由于這張表的特殊性,SQL語句的優(yōu)化器進行了特殊的處理,比如在9i中:
SQL>
CONN
/@YTK92
AS
SYSDBA已連接。
SQL>
SELECT
FROM
DUAL;
D
X
SQL>
INSERT
INTO
DUAL
VALUES
('X');
已創(chuàng)建
1
行。
SQL>
SELECT
FROM
DUAL;
D
X
SQL>
SELECT
COUNT(*)
FROM
DUAL;
COUNT(*)
2
SQL>
ROLLBACK;
回退已完成。
SQL>
SELECT
FROM
V$VERSION;
BANNER
Oracle9i
Enterprise
Edition
Release
9.2.0.4.0
Production
PL/SQL
Release
9.2.0.4.0
Production
CORE
9.2.0.3.0
Production
TNS
for
32-bit
Windows:
Version
9.2.0.4.0
Production
NLSRTL
Version
9.2.0.4.0
Production
在9i的SQL優(yōu)化器中,Oracle知道DUAL表只有一條記錄,因此即使插入新的記錄后,SELECT
FROM
DUAL仍然返回一條記錄。
而使用COUNT(*)的話,則會返回DUAL表中真正的記錄數(shù)。
但是10g的SQL優(yōu)化器進行了進一步調(diào)整,而且10g還增加了FAST
DUAL這種執(zhí)行計劃,因此得到的結(jié)果和9i有了區(qū)別:
SQL>
CONN
/@YTK102
AS
SYSDBA已連接。
SQL>
SELECT
FROM
DUAL;
D
X
SQL>
INSERT
INTO
DUAL
VALUES
('X');
已創(chuàng)建
1
行。
SQL>
SELECT
FROM
DUAL;
D
X
SQL>
SELECT
COUNT(*)
FROM
DUAL;
COUNT(*)
1
SQL>
SELECT
FROM
V$VERSION;
BANNER
Oracle
Database
10g
Enterprise
Edition
Release
10.2.0.1.0
Prod
PL/SQL
Release
10.2.0.1.0
Production
CORE
10.2.0.1.0
Production
TNS
for
32-bit
Windows:
Version
10.2.0.1.0
Production
NLSRTL
Version
10.2.0.1.0
Production
可以看到,10g的優(yōu)化器中即使是COUNT(*)查詢,返回的總數(shù)也是1。
也就是說,沒有辦法通過SQL獲得DUAL表中真正的記錄數(shù)。
雖然SQL中沒有辦法,但是PL/SQL是可以的,否則也不會導(dǎo)致EXPDP等操作報錯了。
SQL>
BEGIN
2
FOR
I
IN
(SELECT
FROM
DUAL)
LOOP
3
DBMS_OUTPUT.PUT_LINE(I.DUMMY);
4
END
LOOP;
5
END;
6
X
X
PL/SQL
過程已成功完成。
SQL>
ROLLBACK;
回退已完成。
通過這個結(jié)果也可以看出,SQL優(yōu)化器和PL/SQL優(yōu)化器在處理DUAL表上的區(qū)別。
關(guān)于Visual Basic 9.0的動態(tài)標識符
動態(tài)語言今年來發(fā)展很快,各種腳本語言多少都帶有些動態(tài)語言的特點。動態(tài)語言以其靈活的語法和豐富的運行時行為贏得了許多人的青睞。在.NET陣營,C#一直扮演著靜態(tài)語言的角色,盡管3.0的語法改變很激進,但仍注重于編譯時的類型檢查和約束。動態(tài)特性用的不好會產(chǎn)生更多運行時問題,不易確保程序的可靠性,但其提高開發(fā)效率的作用是毋庸置疑的。Visual
Basic
9.0是Visual
Studio中唯一能讓你統(tǒng)領(lǐng)動態(tài)和靜態(tài)兩大領(lǐng)域的語言,讓你在程序中自由選擇喜歡的風格。
Visual
Basic
從1.0便支持后期綁定,即按照對象的運行時類型信息使用對象,而不是定義這個對象時的類型信息。如:
Dim
l
As
Object
New
ArrayList()l.Add(12)l.RemoveAt(0)
我們知道Object沒有Add或RemoveAt方法,但運行時類型ArrayList具有他們,因此Visual
Basic允許到運行時再檢查有無相應(yīng)的操作并支持。既然這個過程已經(jīng)是在運行時做的了,我們就應(yīng)該允許這個后期綁定的操作本身也是在運行時確定。這個語法增強叫做動態(tài)標識符。比如我們可以和這樣寫:
Dim
l
As
Object
New
ArrayList()l.("Add")(12)l.("RemoveAt")(0)
我們看到,這個時候方法名稱Add和RemoveAt已經(jīng)是字符串了,它當然也可以是包含字符串的變量!所以你甚至可以寫出這樣的代碼:
l.(Console.ReadLine())(12)l.("Remove"
&
"At")(0)
這樣,作為方法名稱的標識符就可以完全在動態(tài)期間確定了。方法名稱如此,那么類型名稱呢?理應(yīng)如此。我們可以這樣寫:
Dim
l
As
Object
New
("ArrayList")()
這樣,你的變量l的類型將根據(jù)一個運行時字符串的值確定。動態(tài)標識符還能將函數(shù)的參數(shù)也動態(tài)化,假設(shè)有下列子程序:
Sub
Method1(Optional
arg1
As
String,
Optional
arg2
As
String)
運行的時候,我們可以動態(tài)地指定將數(shù)值賦給哪個參數(shù):
If
a
>
Then
argString
"arg1"
Else
argString
"arg2"Method1({argString}:=
a.ToString())
注意在:=符號之前的大括號,表示對參數(shù)名稱的動態(tài)結(jié)合。有了動態(tài)標識符這一特性,Visual
Basic
9.0將不需要利用反射的復(fù)雜語法,就可以做很多需要反射和運行時類型信息來做的任務(wù),這使得Visual
Basic成為解決你手邊小問題的最佳幫手。本期我們已經(jīng)領(lǐng)略到Visual
Basic
9.0在動態(tài)特性上的革新,下一期將介紹第二個動態(tài)特性——動態(tài)接口。
用VB6.0實現(xiàn)網(wǎng)絡(luò)實時監(jiān)控系統(tǒng)
計算機網(wǎng)絡(luò)技術(shù)的日益發(fā)展和普及,為信息共享提供了一條全球性的高速通道,但目前采用的TCP/IP協(xié)議族潛在著安全漏洞,其安全機制并不健全,如何保護企業(yè)內(nèi)部網(wǎng)絡(luò)中的資源及信息不受外部攻擊者肆意破壞或盜竊,是企業(yè)網(wǎng)絡(luò)安全需要解決的重要問題。當我們擔心被黑客攻擊或懷疑電腦被植入木馬時,我們往往求助于防火墻,本系統(tǒng)即通過實時監(jiān)控全部TCP連接的方法來實現(xiàn)防黑客攻擊。同時網(wǎng)絡(luò)管理人員在整個網(wǎng)絡(luò)運行期間,能否實時監(jiān)控聯(lián)網(wǎng)計算機的運行狀態(tài)和操作對網(wǎng)絡(luò)安全具有極其重要的作用.下面就以Visual
Basic
6.0作為開發(fā)工具講述兩個主要模塊的設(shè)計和實現(xiàn)。
系統(tǒng)概述
該系統(tǒng)由兩個子系統(tǒng)組成:服務(wù)器端系統(tǒng)和客戶端(工作站)系統(tǒng)。服務(wù)器端系統(tǒng)安裝在網(wǎng)絡(luò)管理人員的計算機上,用于實施各種對聯(lián)網(wǎng)計算機的監(jiān)控操作;客戶端系統(tǒng)安裝在每臺聯(lián)網(wǎng)的計算機上,它運行后以圖標的方式出現(xiàn)在系統(tǒng)任務(wù)欄的提示區(qū)中,不影響工作站的其他操作,只用于響應(yīng)服務(wù)器端的監(jiān)控命令,并根據(jù)服務(wù)的需要,及時采樣工作站的相應(yīng)數(shù)據(jù)返回給服務(wù)器端。該系統(tǒng)的運行環(huán)境可以運行于Win98、Win95或WinNT、Win2000下。在系統(tǒng)的開發(fā)中,引入了WINSOCK通訊控件,除此之外,為較好地實現(xiàn)各項監(jiān)控操作,還用到了幾個API函數(shù)。
系統(tǒng)功能
1、監(jiān)控全部TCP連接:實時監(jiān)控所有服務(wù)器端口的連接情況、及時對異常連接發(fā)出警告并提示用戶刪除異常連接;
2、屏幕監(jiān)控:該功能允許服務(wù)器隨時把被監(jiān)控工作站的屏幕畫面抓取到服務(wù)器中,網(wǎng)絡(luò)管理人員對相應(yīng)工作站所進行的操作一目了然,若發(fā)現(xiàn)有非法操作即可采取發(fā)送警告或強制措施,強迫其停止相應(yīng)操作;
3、對工作站進行鎖機、關(guān)機、限制鼠標活動等;
4、服務(wù)器和工作站之間的信息互送。
功能的實現(xiàn)
1、監(jiān)控全部TCP連接
TCP/IP(Transmission
Control
Protocol/Internet
Protocol:傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)是一個包括TCP、IP、
UDP、ARP、RARP和ICMP等在內(nèi)的網(wǎng)絡(luò)協(xié)議集。TCP/IP經(jīng)常被稱為“將Internet綁定在一起的粘合劑”,它允許在空間上分離的多個信息網(wǎng)絡(luò)連接在一起形成一個巨大的虛擬網(wǎng)絡(luò)。TCP和UDP(用戶數(shù)據(jù)報協(xié)議)是兩個最常用的數(shù)據(jù)傳輸協(xié)議,它們都使用設(shè)置監(jiān)聽端口的方法來完成數(shù)據(jù)傳輸。
在本文中討論TCP連接。通過使用TCP,
Internet客戶機可以打開到另一個Internet客戶機的虛擬連接并傳送數(shù)據(jù)流。與UDP不同,TCP協(xié)議通過重傳丟失的數(shù)據(jù)報保證傳輸?shù)目煽啃。它也保證在接收端的應(yīng)用程序按發(fā)送的順序?qū)⒔邮盏降奈缓妥止?jié)重新組裝起來以獲取完整的數(shù)據(jù)。
要獲得與服務(wù)器系統(tǒng)中全部有效的TCP連接,用到GetTcpTable這個API函數(shù),它定義如下:
Private
Declare
Function
GetTcpTable
Lib
"iphlpapi.
dll"
(ByRef
pTcpTable
As
MIB_TCPTABLE,
ByRef
pdwSize
As
Long,
ByVal
bOrder
As
Long)
As
Long
其中參數(shù)pPcpTable是已生成的
TCP連接表緩沖區(qū)的指針,參數(shù)pdwsize是緩沖區(qū)大。ó斁彌_區(qū)不夠大時,該參數(shù)返回實際需要的大。,參數(shù)bOrder指示連接表是否需要按“Local
IP”、“Localport”、“Remote
IP”、“Remote
port”依次進行排序,1為按此順序。
通過一個TIMEER控件的TIMER的事件來比較前后兩個TCP連接表,我們可以立即發(fā)現(xiàn)異常并發(fā)出警告。本系統(tǒng)用聲音和報警標志提醒用戶注意可能的外界入侵。收到警告信號后,我們應(yīng)首先將可疑連接刪除掉,SetTcpEntry函數(shù)可以幫助我們刪除可疑連接。其定義為:
Private
Declare
Function
SetTcpEntry
Lib
"iphlpapi.
dll"
(ByRef
pTcpTable
As
MIB_TCPROW)
As
Long
其中參數(shù)pTcptable為指向tcp表行的指針。然后將欲刪連接的狀態(tài)置為MIB_TCP_STATE_DELETE_TCB(值為12)即可刪除該連接。
TIMER事件源代碼:
Private
Sub
Timer1_Timer()
Dim
Return1
As
Long,
i
As
Long
Dim
Tmp1
As
Long,
Tmp2
As
Long
Dim
Ip_Buf(1
To
4)
As
Byte
Dim
Win_Path
As
String,
Tmp3
As
String
Return1
GetTcpTable(TCP1,
Len(TCP1),
1)
If
Last_Num_Of_Entries
<>
And
_
Last_Num_Of_Entries
<>
TCP1.dwNum_Of_Entries
Then
'異常時發(fā)出警告
Picture1.Visible
True
'警告標志
On
Error
Resume
Next
Win_Path
String(145,
0)
'利用API函數(shù)GetWindowsDirectory獲得當前系統(tǒng)目錄
i
GetWindowsDirectory(Win_Path,
145)
Win_Path
Left(Win_Path,
i)
'利用API函數(shù)sndPlaySound發(fā)出報警聲音
i
sndPlaySound(Win_Path
"MediaDing.wav",
&H1)
On
Error
GoTo
Else
If
Picture1.Visible
True
Then
Picture1.Visible
False
End
If
End
If
Last_Num_Of_Entries
TCP1.dwNum_Of_Entries
Select
Case
Return1
Case
0&:
Text1
Combo1.Clear
For
i
To
TCP1.dwNum_Of_Entries
1
Tmp3
Str(i
1)
Select
Case
TCP1.TCP_Table(i).dwState
顯示連接狀態(tài)
Case
1:
Tmp3
Tmp3
"CLOSED"
Case
2:
Tmp3
Tmp3
"LISTENING"
Case
3:
Tmp3
Tmp3
"SYN_SENT"
Case
4:
Tmp3
Tmp3
"SYN_RCVD"
Case
5:
Tmp3
Tmp3
"ESTABLISHED"
Case
6:
Tmp3
Tmp3
"FIN_WAIT1"
Case
7:
Tmp3
Tmp3
"FIN_WAIT2"
Case
8:
Tmp3
Tmp3
"CLOSE_WAIT"
Case
9:
Tmp3
Tmp3
"CLOSING"
Case
10:
Tmp3
Tmp3
"LAST_ACK"
Case
11:
Tmp3
Tmp3
"TIME_WAIT"
Case
12:
Tmp3
Tmp3
"DELETE_TCB"
End
Select
Combo1.AddItem
Tmp3
填充列表以供用戶刪除
本地IP
Tmp3
Tmp3
vbCrLf
vbTab
"Local:
'CopyMemory為API函數(shù)
CopyMemory
Ip_Buf(1),
TCP1.TCP_Table(i).dwLocalAddr,
4
Tmp3
Tmp3
CStr(Ip_Buf(1))
_
CStr(Ip_Buf(2))
CStr(Ip_Buf(3))
_
CStr(Ip_Buf(4))
Tmp1
TCP1.TCP_Table(i).dwLocalPort
本地端口
Tmp2
Tmp1
256
(Tmp1
Mod
256)
256
遠程IP
Tmp3
Tmp3
Str(Tmp2)
vbTab
"Remote:
CopyMemory
Ip_Buf(1),
TCP1.TCP_Table(i).dwRemoteAddr,
4
Tmp3
Tmp3
CStr(Ip_Buf(1))
CStr(Ip_Buf(2))
_
CStr(Ip_Buf(3))
CStr(Ip_Buf(4))
遠程端口
Tmp1
TCP1.TCP_Table(i).dwRemotePort
Tmp2
Tmp1
256
(Tmp1
Mod
256)
256
Tmp3
Tmp3
Str(Tmp2)
vbCrLf
Text1
Text1
Tmp3
Next
i
Case
50&:
MsgBox
"系統(tǒng)不支持該API函數(shù)":
End
Case
87:
MsgBox
"無效的參數(shù)":
End
Case
111&:
MsgBox
"緩沖區(qū)溢出":
End
Case
232&:
MsgBox
"無數(shù)據(jù)":
End
End
Select
End
Sub
用于刪除連接的CLICK事件源代碼:
Private
Sub
_Click()
Dim
Return1
As
Long
If
Combo1.ListIndex
<
Then
Exit
Sub
將欲刪連接的狀態(tài)置為值為12
TCP1.TCP_Table(Combo1.ListIndex).dwState
12
執(zhí)行刪除
Return1
SetTcpEntry(TCP1.TCP_Table(Combo1.ListIndex))
If
Return1
Then
MsgBox
"刪除成功"
Else
MsgBox
"刪除失敗"
End
If
Timer1_Timer
End
Sub
計算機網(wǎng)絡(luò)技術(shù)的日益發(fā)展和普及,為信息共享提供了一條全球性的高速通道,但目前采用的TCP/IP協(xié)議族潛在著安全漏洞,其安全機制并不健全,如何保護企業(yè)內(nèi)部網(wǎng)絡(luò)中的資源及信息不受外部攻擊者肆意破壞或盜竊,是企業(yè)網(wǎng)絡(luò)安全需要解決的重要問題。當我們擔心被黑客攻擊或懷疑電腦被植入木馬時,我們往往求助于防火墻,本系統(tǒng)即通過實時監(jiān)控全部TCP連接的方法來實現(xiàn)防黑客攻擊。同時網(wǎng)絡(luò)管理人員在整個網(wǎng)絡(luò)運行期間,能否實時監(jiān)控聯(lián)網(wǎng)計算機的運行狀態(tài)和操作對網(wǎng)絡(luò)安全具有極其重要的作用.下面就以Visual
Basic
6.0作為開發(fā)工具講述兩個主要模塊的設(shè)計和實現(xiàn)。
系統(tǒng)概述
該系統(tǒng)由兩個子系統(tǒng)組成:服務(wù)器端系統(tǒng)和客戶端(工作站)系統(tǒng)。服務(wù)器端系統(tǒng)安裝在網(wǎng)絡(luò)管理人員的計算機上,用于實施各種對聯(lián)網(wǎng)計算機的監(jiān)控操作;客戶端系統(tǒng)安裝在每臺聯(lián)網(wǎng)的計算機上,它運行后以圖標的方式出現(xiàn)在系統(tǒng)任務(wù)欄的提示區(qū)中,不影響工作站的其他操作,只用于響應(yīng)服務(wù)器端的監(jiān)控命令,并根據(jù)服務(wù)的需要,及時采樣工作站的相應(yīng)數(shù)據(jù)返回給服務(wù)器端。該系統(tǒng)的運行環(huán)境可以運行于Win98、Win95或WinNT、Win2000下。在系統(tǒng)的開發(fā)中,引入了WINSOCK通訊控件,除此之外,為較好地實現(xiàn)各項監(jiān)控操作,還用到了幾個API函數(shù)。
系統(tǒng)功能
1、監(jiān)控全部TCP連接:實時監(jiān)控所有服務(wù)器端口的連接情況、及時對異常連接發(fā)出警告并提示用戶刪除異常連接;
2、屏幕監(jiān)控:該功能允許服務(wù)器隨時把被監(jiān)控工作站的屏幕畫面抓取到服務(wù)器中,網(wǎng)絡(luò)管理人員對相應(yīng)工作站所進行的操作一目了然,若發(fā)現(xiàn)有非法操作即可采取發(fā)送警告或強制措施,強迫其停止相應(yīng)操作;
3、對工作站進行鎖機、關(guān)機、限制鼠標活動等;
4、服務(wù)器和工作站之間的信息互送。
功能的實現(xiàn)
1、監(jiān)控全部TCP連接
TCP/IP(Transmission
Control
Protocol/Internet
Protocol:傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)是一個包括TCP、IP、
UDP、ARP、RARP和ICMP等在內(nèi)的網(wǎng)絡(luò)協(xié)議集。TCP/IP經(jīng)常被稱為“將Internet綁定在一起的粘合劑”,它允許在空間上分離的多個信息網(wǎng)絡(luò)連接在一起形成一個巨大的虛擬網(wǎng)絡(luò)。TCP和UDP(用戶數(shù)據(jù)報協(xié)議)是兩個最常用的數(shù)據(jù)傳輸協(xié)議,它們都使用設(shè)置監(jiān)聽端口的方法來完成數(shù)據(jù)傳輸。
在本文中討論TCP連接。通過使用TCP,
Internet客戶機可以打開到另一個Internet客戶機的虛擬連接并傳送數(shù)據(jù)流。與UDP不同,TCP協(xié)議通過重傳丟失的數(shù)據(jù)報保證傳輸?shù)目煽啃。它也保證在接收端的應(yīng)用程序按發(fā)送的順序?qū)⒔邮盏降奈缓妥止?jié)重新組裝起來以獲取完整的數(shù)據(jù)。
要獲得與服務(wù)器系統(tǒng)中全部有效的TCP連接,用到GetTcpTable這個API函數(shù),它定義如下:
Private
Declare
Function
GetTcpTable
Lib
"iphlpapi.
dll"
(ByRef
pTcpTable
As
MIB_TCPTABLE,
ByRef
pdwSize
As
Long,
ByVal
bOrder
As
Long)
As
Long
其中參數(shù)pPcpTable是已生成的
TCP連接表緩沖區(qū)的指針,參數(shù)pdwsize是緩沖區(qū)大。ó斁彌_區(qū)不夠大時,該參數(shù)返回實際需要的大。瑓(shù)bOrder指示連接表是否需要按“Local
IP”、“Localport”、“Remote
IP”、“Remote
port”依次進行排序,1為按此順序。
通過一個TIMEER控件的TIMER的事件來比較前后兩個TCP連接表,我們可以立即發(fā)現(xiàn)異常并發(fā)出警告。本系統(tǒng)用聲音和報警標志提醒用戶注意可能的外界入侵。收到警告信號后,我們應(yīng)首先將可疑連接刪除掉,SetTcpEntry函數(shù)可以幫助我們刪除可疑連接。其定義為:
Private
Declare
Function
SetTcpEntry
Lib
"iphlpapi.
dll"
(ByRef
pTcpTable
As
MIB_TCPROW)
As
Long
其中參數(shù)pTcptable為指向tcp表行的指針。然后將欲刪連接的狀態(tài)置為MIB_TCP_STATE_DELETE_TCB(值為12)即可刪除該連接。
TIMER事件源代碼:
Private
Sub
Timer1_Timer()
Dim
Return1
As
Long,
i
As
Long
Dim
Tmp1
As
Long,
Tmp2
As
Long
Dim
Ip_Buf(1
To
4)
As
Byte
Dim
Win_Path
As
String,
Tmp3
As
String
Return1
GetTcpTable(TCP1,
Len(TCP1),
1)
If
Last_Num_Of_Entries
<>
And
_
Last_Num_Of_Entries
<>
TCP1.dwNum_Of_Entries
Then
'異常時發(fā)出警告
Picture1.Visible
True
'警告標志
On
Error
Resume
Next
Win_Path
String(145,
0)
'利用API函數(shù)GetWindowsDirectory獲得當前系統(tǒng)目錄
i
GetWindowsDirectory(Win_Path,
145)
Win_Path
Left(Win_Path,
i)
'利用API函數(shù)sndPlaySound發(fā)出報警聲音
i
sndPlaySound(Win_Path
"MediaDing.wav",
&H1)
On
Error
GoTo
Else
If
Picture1.Visible
True
Then
Picture1.Visible
False
End
If
End
If
Last_Num_Of_Entries
TCP1.dwNum_Of_Entries
Select
Case
Return1
Case
0&:
Text1
Combo1.Clear
For
i
To
TCP1.dwNum_Of_Entries
1
Tmp3
Str(i
1)
Select
Case
TCP1.TCP_Table(i).dwState
顯示連接狀態(tài)
Case
1:
Tmp3
Tmp3
"CLOSED"
Case
2:
Tmp3
Tmp3
"LISTENING"
Case
3:
Tmp3
Tmp3
"SYN_SENT"
Case
4:
Tmp3
Tmp3
"SYN_RCVD"
Case
5:
Tmp3
Tmp3
"ESTABLISHED"
Case
6:
Tmp3
Tmp3
"FIN_WAIT1"
Case
7:
Tmp3
Tmp3
"FIN_WAIT2"
Case
8:
Tmp3
Tmp3
"CLOSE_WAIT"
Case
9:
Tmp3
Tmp3
"CLOSING"
Case
10:
Tmp3
Tmp3
"LAST_ACK"
Case
11:
Tmp3
Tmp3
"TIME_WAIT"
Case
12:
Tmp3
Tmp3
"DELETE_TCB"
End
Select
Combo1.AddItem
Tmp3
填充列表以供用戶刪除
本地IP
Tmp3
Tmp3
vbCrLf
vbTab
"Local:
'CopyMemory為API函數(shù)
CopyMemory
Ip_Buf(1),
TCP1.TCP_Table(i).dwLocalAddr,
4
Tmp3
Tmp3
CStr(Ip_Buf(1))
_
CStr(Ip_Buf(2))
CStr(Ip_Buf(3))
_
CStr(Ip_Buf(4))
Tmp1
TCP1.TCP_Table(i).dwLocalPort
本地端口
Tmp2
Tmp1
256
(Tmp1
Mod
256)
256
遠程IP
Tmp3
Tmp3
Str(Tmp2)
vbTab
"Remote:
CopyMemory
Ip_Buf(1),
TCP1.TCP_Table(i).dwRemoteAddr,
4
Tmp3
Tmp3
CStr(Ip_Buf(1))
CStr(Ip_Buf(2))
_
CStr(Ip_Buf(3))
CStr(Ip_Buf(4))
遠程端口
Tmp1
TCP1.TCP_Table(i).dwRemotePort
Tmp2
Tmp1
256
(Tmp1
Mod
256)
256
Tmp3
Tmp3
Str(Tmp2)
vbCrLf
Text1
Text1
Tmp3
Next
i
Case
50&:
MsgBox
"系統(tǒng)不支持該API函數(shù)":
End
Case
87:
MsgBox
"無效的參數(shù)":
End
Case
111&:
MsgBox
"緩沖區(qū)溢出":
End
Case
232&:
MsgBox
"無數(shù)據(jù)":
End
End
Select
End
Sub
用于刪除連接的CLICK事件源代碼:
Private
Sub
_Click()
Dim
Return1
As
Long
If
Combo1.ListIndex
<
Then
Exit
Sub
將欲刪連接的狀態(tài)置為值為12
TCP1.TCP_Table(Combo1.ListIndex).dwState
12
執(zhí)行刪除
Return1
SetTcpEntry(TCP1.TCP_Table(Combo1.ListIndex))
If
Return1
Then
MsgBox
"刪除成功"
Else
MsgBox
"刪除失敗"
End
If
Timer1_Timer
End
Sub
自動重啟pubwin2007服務(wù)器腳本
以下為引用的內(nèi)容:
@echo
offtitle
Pubwin2007重起腳本...set
logfile=d:數(shù)據(jù)庫備份重啟日志.txtnet
stop
AppServer>>%logfile%net
stop
SQLSERVERAGENT>>%logfile%net
stop
MSSQLSERVER>>%logfile%taskkill
/f
/im
SyncAgent.exe>>%logfile%taskkill
/f
/im
ServiceManager.exe>>%logfile%ping
127.0.0.1
-n
3
1>nulRunDll32.exe
USER32.DLL,UpdatePerUserSystemParametersping
127.0.0.1
-n
5
1>nul@echo
數(shù)據(jù)備份開始……>>%logfile%xcopy
D:epserverPubwinServerdatabase
"D:數(shù)據(jù)庫備份\%date%"
/e
/h
/k
/r
/f
/y>>%logfile%@echo
數(shù)據(jù)備份完成……>>%logfile%@echo
系統(tǒng)于%date%
%time%重新啟動。>>%logfile%shutdown
/r
/t
3
/c
"計劃重啟!"
以下為引用的內(nèi)容:
@echo
offset
logfile=d:數(shù)據(jù)庫備份重啟日志.txt@echo
系統(tǒng)于%date%
%time%重啟完成。>>%logfile%echo
===================系統(tǒng)于%date%
%time%正常啟動===================>>%logfile%@echo.>>%logfile%exit
開機代碼主要是檢查重起一共用時多少,從而發(fā)現(xiàn)系統(tǒng)是否有問題了.把開機代碼放到啟動目錄就OK了.紅色是重起日志目錄.綠色的是pubwin服務(wù)器的數(shù)據(jù)庫路徑,根據(jù)自己的設(shè)定...藍色部分是數(shù)據(jù)庫備份位置,根據(jù)日期建立.
【透視Windows 的Web接口的方法參考】相關(guān)文章:
手繪中的透視方法08-18
微軟Windows7自動安裝的方法07-23
Windows系統(tǒng)常見的幾個故障及解決方法08-12
java實現(xiàn)web服務(wù)器的方法10-14
采購管理的參考方法09-11
web程序設(shè)計選擇題及參考答案06-27
俄語的學習方法參考07-28
Web Workers加速移動Web應(yīng)用07-01
USB接口無法識別U盤的原因及解決方法09-05