網站首頁 語言 會計 互聯網計算機 醫學 學歷 職場 文藝體育 範文
當前位置:學識谷 > 設計製作 > 網頁設計

透視Windows 2003的Web接口的方法參考

欄目: 網頁設計 / 發佈於: / 人氣:2.01W

透視Windows 2003的Web接口

透視Windows 2003的Web接口的方法參考

Web管理接口(Web

Management

Interface)在Windows

Server

2003中是一項非常值得網絡用户使用的功能,這項功能主要的目的就是為了向一些有權限的網絡用户在無法進行本機維護時,提供遠程的Web管理接口服務。下面筆者對四項常見的Web接口管理服務進行一下簡單的介紹。

打印服務器的Web接口

打印服務器是Windows

Server

2003服務器中的一種,它是實現資源共享的重要組成部分。在Windows

Server

2003中,如果打印服務器安裝了IIS服務器,則擁有權限的網絡用户就可以通過IE等瀏覽器來管理打印服務器,域中的用户也可以通過瀏覽器來安裝打印機、管理自己打印的文檔等。這種方便的管理模式就是“打印機服務器Web接口管理方式”。其實現的過程如下:

首先安裝IIS

6.0和相關的遠程管理組件。點擊“開始→控制面板→添加/刪除程序”,在“添加或刪除程序”窗口中點擊“添加/刪除Windows組件”按鈕,接着在彈出的“Windows組件嚮導”窗口中選擇“應用程序服務器”。

雙擊“應用程序服務器”後,在彈出的窗口中勾選“Internet信息服務(IIS)”。因為要設置打印機服務器可以使用Web接口方式的管理,所以還需要接着點擊“詳細信息”按鈕。在彈出的窗口中勾選“Internet打印”選項,才能實現Web打印及管理打印機(圖1)。

在組件安裝完畢後,就可以在局域網中的任何一台計算機上輸入打印服務器名稱/printers/(如)進入打印機服務器的Web接口管理頁面了。在該頁面可以看到這台服務器上的所有打印機及狀態。

終端服務器的Web接口

終端服務器是一種可以讓有權限的遠程網絡用户,通過桌面界面登錄的方式對服務器進行管理的服務。一般來説,我們都是通過“遠程桌面連接”功能實現客户端與終端服務器之間的連接。

在Windows

Server

2003中,用户只要讓終端服務器搭配IIS服務器,就可以在客户端通過使用IE瀏覽器(4.0以上版本)完成與終端服務器的連接、登錄與管理操作。這項功能就是下面將要講述的“遠程桌面Web連接”功能。它的主要目的就是讓管理員不必在每台計算機上都安裝“遠程桌面連接”程序,就可以通過Web接口(瀏覽器)來連接終端服務器。

首先安裝IIS

6.0,並在安裝的過程中雙擊“Internet信息服務(IIS)”,在打開的窗口中勾選“萬維網服務”。接着雙擊“萬維網服務”,在彈出的窗口中勾選“遠程桌面Web連接”後,開始安裝選中的組件。

在安裝該組件後,可以在遠程計算機的IE地址欄中輸入服務器IP地址或名稱/tsweb/(如)即可訪問終端服務器了。在“遠程桌面Web連接”頁面中輸入服務器的IP地址並設置好分辨率大小後,點擊“連接”按鈕就可以登錄到終端服務器的登錄界面。輸入正確的用户名和密碼就可以登錄到該服務器的桌面環境。

提示:如果出現無法連接到終端服務器的情況,請確認終端服務器的遠程桌面功能是否激活,即右鍵點擊“我的電腦”,在彈出的菜單中選擇“屬性”,在屬性窗口中的“遠程”選項卡設置界面,勾選“允許用户遠程連接這台計算機”即可。

流媒體服務器的Web接口

在Windows

Server

2003中,架設既支持網絡廣播又可進行視頻點播的Windows

Media流媒體服務器是一件很容易的事情,但你想過沒有,我們同樣可以通過Web接口來管理流媒體服務器。

在“Windows組件嚮導”窗口中勾選“Windows

Media

Services”,並進入該選項的詳細設置窗口,勾選“用於Web的Windows

Media

Services管理器”項(圖2)。從隨後彈出的“Windows

Media

Services安裝警告”提示框中,可以看到當前選中的組件需要IIS

6.0的支持。此時請點擊“確定”按鈕(IIS

6.0組件將被自動選中)。

在上述組件安裝完畢後,就可以在遠程計算機的IE瀏覽器地址欄中輸入http://流媒體服務器IP地址8080/(如http://)使用Web接口管理流媒體服務器了。輸入網址並按回車鍵後,就可以看到Windows

Media

Services的Web接口管理頁面了。

為了安全考慮(防止其他用户管理Windows

Media

Services),大家可以在退出Web接口管理頁面時,輸入網址來註銷本次管理。

遠程維護Web接口

遠程維護功能是一項非常重要的功能,它可以幫助網絡管理員通過Web接口來完成服務器的多個具體服務項目的管理維護操作,也就是遠程進入IIS

6.0

Web接口管理頁面。

在“Windows組件嚮導”窗口中依次選擇“應用程序服務器”、“Internet信息服務(IIS)”、“萬維網服務”,並在“萬維網服務”中勾選“遠程管理(HTML)”,最後點擊“確定”按鈕進行組件的安裝。

在完成上述操作後,就可以在局域網中輸入“https://服務器名稱或IP地址?8098”這樣的地址(在遠程計算機中只能輸入“服務器IP地址:8098”)來訪問Windows

Server

2003的IIS

6.0的Web接口管理頁面。

在該頁面中可以查看或配置服務器的運行日誌文件、網站IP地址、DNS後綴、域。此外還能夠創建、編輯、刪除服務器上的用户和組名單,甚至可以遠程重新啟動服務器、關閉服務器。

通過對Web接口管理實例的講解,大家是不是感到Windows

Server

2003的Web接口管理功能很強大呢?但筆者要強調的是,Web接口管理會因用户的管理是否妥當出現不同等級的安全隱患,所以請大家謹慎使用Web接口管理功能。

Win2003中IE安全區域的設置技巧

概要

本文介紹瞭如何配置“域名系統”(DNS)

服務器,使其承載可從外部訪問(即從Internet

訪問)的

Web

站點。

如何獲取IP地址

若要承載可從外部訪問的Web站點,必須從您的

Internet

服務提供商

(ISP)

那裏獲取一個公用

IP

地址。並將此IP地址指定到DNS服務器所連接防火牆或路由器的外部接口

如何註冊域名

通過

Internet

域名註冊管理機構(這樣的管理機構被稱為註冊機構)為您的組織註冊一個父級或二級

DNS

域名。

各註冊機構的註冊過程可能會有所不同,但您還是可以按以下步驟來註冊域名:

進行搜索,確認要註冊的名稱是否可用。

提供該帳户的聯繫信息和交費信息(包括電子郵件地址)。

鍵入主從DNS服務器的完全合格的域名稱

(FQDN)。

備註:這些是ISP提供的公用IP地址。

支付年費或作好支付年費的準備。

如何配置Web服務器

安裝和配置Microsoft

Internet信息服務

(IIS)(如果尚未安裝)。

如何為Web服務器創建DNS項

請為配置了IIS的DNS

服務器創建別名或

CNAME

記錄。這樣就可以確保外部主機能夠使用“www”主機名來連接您的Web服務器。創建方法是:

打開DNS管理單元。方法是:單擊開始,指向管理工具,然後單擊

DNS。

在DNS下,展開“主機名”(主機名是DNS服務器的主機名)。

展開正向搜索區域。

在正向搜索區域下,右鍵單擊所需區域(例如,域名。),然後單擊新建別名(CNAME)。

在“別名”框中,鍵入www。

在“目標主機的完全合格的名稱”框中,鍵入安裝

IIS

DNS

服務器的完全合格的主機名。例如,鍵入

dns.域名,然後單擊確定。

Oracle 10g中獲取DUAL表記錄數

Oracle中的DUAL表是很特殊的一張表,這種表只有一個字段,一條記錄。Oracle很多查詢的結果都通過訪問這張表實現。所以很多包都依賴這張表。

由於這張表的特殊性,SQL語句的優化器進行了特殊的處理,比如在9i中:

SQL>

CONN

/@YTK92

AS

SYSDBA已連接。

SQL>

SELECT

FROM

DUAL;

D

X

SQL>

INSERT

INTO

DUAL

VALUES

('X');

已創建

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

Production

PL/SQL

Release

Production

CORE

Production

TNS

for

32-bit

Windows:

Version

Production

NLSRTL

Version

Production

在9i的SQL優化器中,Oracle知道DUAL表只有一條記錄,因此即使插入新的記錄後,SELECT

FROM

DUAL仍然返回一條記錄。

而使用COUNT(*)的話,則會返回DUAL表中真正的記錄數。

但是10g的SQL優化器進行了進一步調整,而且10g還增加了FAST

DUAL這種執行計劃,因此得到的結果和9i有了區別:

SQL>

CONN

/@YTK102

AS

SYSDBA已連接。

SQL>

SELECT

FROM

DUAL;

D

X

SQL>

INSERT

INTO

DUAL

VALUES

('X');

已創建

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

Prod

PL/SQL

Release

Production

CORE

Production

TNS

for

32-bit

Windows:

Version

Production

NLSRTL

Version

Production

可以看到,10g的優化器中即使是COUNT(*)查詢,返回的總數也是1。

也就是説,沒有辦法通過SQL獲得DUAL表中真正的記錄數。

雖然SQL中沒有辦法,但是PL/SQL是可以的,否則也不會導致EXPDP等操作報錯了。

SQL>

BEGIN

2

FOR

I

IN

(SELECT

FROM

DUAL)

LOOP

3

DBMS__LINE(Y);

4

END

LOOP;

5

END;

6

X

X

PL/SQL

過程已成功完成。

SQL>

ROLLBACK;

回退已完成。

通過這個結果也可以看出,SQL優化器和PL/SQL優化器在處理DUAL表上的區別。

關於Visual Basic 9.0的動態標識符

動態語言今年來發展很快,各種腳本語言多少都帶有些動態語言的特點。動態語言以其靈活的語法和豐富的運行時行為贏得了許多人的青睞。在.NET陣營,C#一直扮演着靜態語言的角色,儘管3.0的語法改變很激進,但仍注重於編譯時的類型檢查和約束。動態特性用的不好會產生更多運行時問題,不易確保程序的可靠性,但其提高開發效率的作用是毋庸置疑的。Visual

Basic

9.0是Visual

Studio中唯一能讓你統領動態和靜態兩大領域的語言,讓你在程序中自由選擇喜歡的風格。

Visual

Basic

從1.0便支持後期綁定,即按照對象的運行時類型信息使用對象,而不是定義這個對象時的類型信息。如:

Dim

l

As

Object

New

ArrayList()l.Add(12)l.RemoveAt(0)

我們知道Object沒有Add或RemoveAt方法,但運行時類型ArrayList具有他們,因此Visual

Basic允許到運行時再檢查有無相應的操作並支持。既然這個過程已經是在運行時做的了,我們就應該允許這個後期綁定的操作本身也是在運行時確定。這個語法增強叫做動態標識符。比如我們可以和這樣寫:

Dim

l

As

Object

New

ArrayList()l.("Add")(12)l.("RemoveAt")(0)

我們看到,這個時候方法名稱Add和RemoveAt已經是字符串了,它當然也可以是包含字符串的變量!所以你甚至可以寫出這樣的代碼:

l.(Console.ReadLine())(12)l.("Remove"

&

"At")(0)

這樣,作為方法名稱的標識符就可以完全在動態期間確定了。方法名稱如此,那麼類型名稱呢?理應如此。我們可以這樣寫:

Dim

l

As

Object

New

("ArrayList")()

這樣,你的變量l的類型將根據一個運行時字符串的值確定。動態標識符還能將函數的參數也動態化,假設有下列子程序:

Sub

Method1(Optional

arg1

As

String,

Optional

arg2

As

String)

運行的時候,我們可以動態地指定將數值賦給哪個參數:

If

a

>

Then

argString

"arg1"

Else

argString

"arg2"Method1({argString}:=

a.ToString())

注意在:=符號之前的大括號,表示對參數名稱的動態結合。有了動態標識符這一特性,Visual

Basic

9.0將不需要利用反射的複雜語法,就可以做很多需要反射和運行時類型信息來做的任務,這使得Visual

Basic成為解決你手邊小問題的最佳幫手。本期我們已經領略到Visual

Basic

9.0在動態特性上的革新,下一期將介紹第二個動態特性——動態接口。

用VB6.0實現網絡實時監控系統

計算機網絡技術的日益發展和普及,為信息共享提供了一條全球性的高速通道,但目前採用的TCP/IP協議族潛在着安全漏洞,其安全機制並不健全,如何保護企業內部網絡中的資源及信息不受外部攻擊者肆意破壞或盜竊,是企業網絡安全需要解決的重要問題。當我們擔心被黑客攻擊或懷疑電腦被植入木馬時,我們往往求助於防火牆,本系統即通過實時監控全部TCP連接的方法來實現防黑客攻擊。同時網絡管理人員在整個網絡運行期間,能否實時監控聯網計算機的運行狀態和操作對網絡安全具有極其重要的作用.下面就以Visual

Basic

6.0作為開發工具講述兩個主要模塊的設計和實現。

系統概述

該系統由兩個子系統組成:服務器端系統和客户端(工作站)系統。服務器端系統安裝在網絡管理人員的計算機上,用於實施各種對聯網計算機的監控操作;客户端系統安裝在每台聯網的計算機上,它運行後以圖標的方式出現在系統任務欄的提示區中,不影響工作站的其他操作,只用於響應服務器端的監控命令,並根據服務的需要,及時採樣工作站的相應數據返回給服務器端。該系統的運行環境可以運行於Win98、Win95或WinNT、Win2000下。在系統的開發中,引入了WINSOCK通訊控件,除此之外,為較好地實現各項監控操作,還用到了幾個API函數。

系統功能

1、監控全部TCP連接:實時監控所有服務器端口的連接情況、及時對異常連接發出警告並提示用户刪除異常連接;

2、屏幕監控:該功能允許服務器隨時把被監控工作站的屏幕畫面抓取到服務器中,網絡管理人員對相應工作站所進行的操作一目瞭然,若發現有非法操作即可採取發送警告或強制措施,強迫其停止相應操作;

3、對工作站進行鎖機、關機、限制鼠標活動等;

4、服務器和工作站之間的信息互送。

功能的實現

1、監控全部TCP連接

TCP/IP(Transmission

Control

Protocol/Internet

Protocol:傳輸控制協議/互聯網協議)是一個包括TCP、IP、

UDP、ARP、RARP和ICMP等在內的網絡協議集。TCP/IP經常被稱為“將Internet綁定在一起的粘合劑”,它允許在空間上分離的多個信息網絡連接在一起形成一個巨大的.虛擬網絡。TCP和UDP(用户數據報協議)是兩個最常用的數據傳輸協議,它們都使用設置監聽端口的方法來完成數據傳輸。

在本文中討論TCP連接。通過使用TCP,

Internet客户機可以打開到另一個Internet客户機的虛擬連接並傳送數據流。與UDP不同,TCP協議通過重傳丟失的數據報保證傳輸的可靠性。它也保證在接收端的應用程序按發送的順序將接收到的位和字節重新組裝起來以獲取完整的數據。

要獲得與服務器系統中全部有效的TCP連接,用到GetTcpTable這個API函數,它定義如下:

Private

Declare

Function

GetTcpTable

Lib

"iphlpapi.

dll"

(ByRef

pTcpTable

As

MIB_TCPTABLE,

ByRef

pdwSize

As

Long,

ByVal

bOrder

As

Long)

As

Long

其中參數pPcpTable是已生成的

TCP連接表緩衝區的指針,參數pdwsize是緩衝區大小(當緩衝區不夠大時,該參數返回實際需要的大小),參數bOrder指示連接表是否需要按“Local

IP”、“Localport”、“Remote

IP”、“Remote

port”依次進行排序,1為按此順序。

通過一個TIMEER控件的TIMER的事件來比較前後兩個TCP連接表,我們可以立即發現異常併發出警告。本系統用聲音和報警標誌提醒用户注意可能的外界入侵。收到警告信號後,我們應首先將可疑連接刪除掉,SetTcpEntry函數可以幫助我們刪除可疑連接。其定義為:

Private

Declare

Function

SetTcpEntry

Lib

"iphlpapi.

dll"

(ByRef

pTcpTable

As

MIB_TCPROW)

As

Long

其中參數pTcptable為指向tcp錶行的指針。然後將欲刪連接的狀態置為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

'異常時發出警告

Picture1.Visible

True

'警告標誌

On

Error

Resume

Next

Win_Path

String(145,

0)

'利用API函數GetWindowsDirectory獲得當前系統目錄

i

GetWindowsDirectory(Win_Path,

145)

Win_Path

Left(Win_Path,

i)

'利用API函數sndPlaySound發出報警聲音

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

顯示連接狀態

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函數

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

"系統不支持該API函數":

End

Case

87:

MsgBox

"無效的參數":

End

Case

111&:

MsgBox

"緩衝區溢出":

End

Case

232&:

MsgBox

"無數據":

End

End

Select

End

Sub

用於刪除連接的CLICK事件源代碼:

Private

Sub

_Click()

Dim

Return1

As

Long

If

Combo1.ListIndex

<

Then

Exit

Sub

將欲刪連接的狀態置為值為12

TCP1.TCP_Table(Combo1.ListIndex).dwState

12

執行刪除

Return1

SetTcpEntry(TCP1.TCP_Table(Combo1.ListIndex))

If

Return1

Then

MsgBox

"刪除成功"

Else

MsgBox

"刪除失敗"

End

If

Timer1_Timer

End

Sub

計算機網絡技術的日益發展和普及,為信息共享提供了一條全球性的高速通道,但目前採用的TCP/IP協議族潛在着安全漏洞,其安全機制並不健全,如何保護企業內部網絡中的資源及信息不受外部攻擊者肆意破壞或盜竊,是企業網絡安全需要解決的重要問題。當我們擔心被黑客攻擊或懷疑電腦被植入木馬時,我們往往求助於防火牆,本系統即通過實時監控全部TCP連接的方法來實現防黑客攻擊。同時網絡管理人員在整個網絡運行期間,能否實時監控聯網計算機的運行狀態和操作對網絡安全具有極其重要的作用.下面就以Visual

Basic

6.0作為開發工具講述兩個主要模塊的設計和實現。

系統概述

該系統由兩個子系統組成:服務器端系統和客户端(工作站)系統。服務器端系統安裝在網絡管理人員的計算機上,用於實施各種對聯網計算機的監控操作;客户端系統安裝在每台聯網的計算機上,它運行後以圖標的方式出現在系統任務欄的提示區中,不影響工作站的其他操作,只用於響應服務器端的監控命令,並根據服務的需要,及時採樣工作站的相應數據返回給服務器端。該系統的運行環境可以運行於Win98、Win95或WinNT、Win2000下。在系統的開發中,引入了WINSOCK通訊控件,除此之外,為較好地實現各項監控操作,還用到了幾個API函數。

系統功能

1、監控全部TCP連接:實時監控所有服務器端口的連接情況、及時對異常連接發出警告並提示用户刪除異常連接;

2、屏幕監控:該功能允許服務器隨時把被監控工作站的屏幕畫面抓取到服務器中,網絡管理人員對相應工作站所進行的操作一目瞭然,若發現有非法操作即可採取發送警告或強制措施,強迫其停止相應操作;

3、對工作站進行鎖機、關機、限制鼠標活動等;

4、服務器和工作站之間的信息互送。

功能的實現

1、監控全部TCP連接

TCP/IP(Transmission

Control

Protocol/Internet

Protocol:傳輸控制協議/互聯網協議)是一個包括TCP、IP、

UDP、ARP、RARP和ICMP等在內的網絡協議集。TCP/IP經常被稱為“將Internet綁定在一起的粘合劑”,它允許在空間上分離的多個信息網絡連接在一起形成一個巨大的虛擬網絡。TCP和UDP(用户數據報協議)是兩個最常用的數據傳輸協議,它們都使用設置監聽端口的方法來完成數據傳輸。

在本文中討論TCP連接。通過使用TCP,

Internet客户機可以打開到另一個Internet客户機的虛擬連接並傳送數據流。與UDP不同,TCP協議通過重傳丟失的數據報保證傳輸的可靠性。它也保證在接收端的應用程序按發送的順序將接收到的位和字節重新組裝起來以獲取完整的數據。

要獲得與服務器系統中全部有效的TCP連接,用到GetTcpTable這個API函數,它定義如下:

Private

Declare

Function

GetTcpTable

Lib

"iphlpapi.

dll"

(ByRef

pTcpTable

As

MIB_TCPTABLE,

ByRef

pdwSize

As

Long,

ByVal

bOrder

As

Long)

As

Long

其中參數pPcpTable是已生成的

TCP連接表緩衝區的指針,參數pdwsize是緩衝區大小(當緩衝區不夠大時,該參數返回實際需要的大小),參數bOrder指示連接表是否需要按“Local

IP”、“Localport”、“Remote

IP”、“Remote

port”依次進行排序,1為按此順序。

通過一個TIMEER控件的TIMER的事件來比較前後兩個TCP連接表,我們可以立即發現異常併發出警告。本系統用聲音和報警標誌提醒用户注意可能的外界入侵。收到警告信號後,我們應首先將可疑連接刪除掉,SetTcpEntry函數可以幫助我們刪除可疑連接。其定義為:

Private

Declare

Function

SetTcpEntry

Lib

"iphlpapi.

dll"

(ByRef

pTcpTable

As

MIB_TCPROW)

As

Long

其中參數pTcptable為指向tcp錶行的指針。然後將欲刪連接的狀態置為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

'異常時發出警告

Picture1.Visible

True

'警告標誌

On

Error

Resume

Next

Win_Path

String(145,

0)

'利用API函數GetWindowsDirectory獲得當前系統目錄

i

GetWindowsDirectory(Win_Path,

145)

Win_Path

Left(Win_Path,

i)

'利用API函數sndPlaySound發出報警聲音

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

顯示連接狀態

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函數

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

"系統不支持該API函數":

End

Case

87:

MsgBox

"無效的參數":

End

Case

111&:

MsgBox

"緩衝區溢出":

End

Case

232&:

MsgBox

"無數據":

End

End

Select

End

Sub

用於刪除連接的CLICK事件源代碼:

Private

Sub

_Click()

Dim

Return1

As

Long

If

Combo1.ListIndex

<

Then

Exit

Sub

將欲刪連接的狀態置為值為12

TCP1.TCP_Table(Combo1.ListIndex).dwState

12

執行刪除

Return1

SetTcpEntry(TCP1.TCP_Table(Combo1.ListIndex))

If

Return1

Then

MsgBox

"刪除成功"

Else

MsgBox

"刪除失敗"

End

If

Timer1_Timer

End

Sub

自動重啟pubwin2007服務器腳本

以下為引用的內容:

@echo

offtitle

Pubwin2007重起腳本...set

logfile=d:數據庫備份重啟日誌.txtnet

stop

AppServer>>%logfile%net

stop

SQLSERVERAGENT>>%logfile%net

stop

MSSQLSERVER>>%logfile%taskkill

/f

/im

>>%logfile%taskkill

/f

/im

>>%logfile%ping

-n

3

1>

,UpdatePerUserSystemParametersping

-n

5

1>nul@echo

數據備份開始……>>%logfile%xcopy

D:epserverPubwinServerdatabase

"D:數據庫備份%date%"

/e

/h

/k

/r

/f

/y>>%logfile%@echo

數據備份完成……>>%logfile%@echo

系統於%date%

%time%重新啟動。>>%logfile%shutdown

/r

/t

3

/c

"計劃重啟!"

以下為引用的內容:

@echo

offset

logfile=d:數據庫備份重啟日誌@echo

系統於%date%

%time%重啟完成。>>%logfile%echo

===================系統於%date%

%time%正常啟動===================>>%logfile%@echo.>>%logfile%exit

開機代碼主要是檢查重起一共用時多少,從而發現系統是否有問題了.把開機代碼放到啟動目錄就OK了.紅色是重起日誌目錄.綠色的是pubwin服務器的數據庫路徑,根據自己的設定...藍色部分是數據庫備份位置,根據日期建立.