- 相關推薦
透視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/(如192.100.100.16/printers/)進入打印機服務器的Web接口管理頁面了。在該頁面可以看到這臺服務器上的所有打印機及狀態。
終端服務器的Web接口
終端服務器是一種可以讓有權限的遠程網絡用戶,通過桌面界面登錄的方式對服務器進行管理的服務。一般來說,我們都是通過“遠程桌面連接”功能實現客戶端與終端服務器之間的連接。
在Windows
Server
2003中,用戶只要讓終端服務器搭配IIS服務器,就可以在客戶端通過使用IE瀏覽器(4.0以上版本)完成與終端服務器的連接、登錄與管理操作。這項功能就是下面將要講述的“遠程桌面Web連接”功能。它的主要目的就是讓管理員不必在每臺計算機上都安裝“遠程桌面連接”程序,就可以通過Web接口(瀏覽器)來連接終端服務器。
首先安裝IIS
6.0,并在安裝的過程中雙擊“Internet信息服務(IIS)”,在打開的窗口中勾選“萬維網服務”。接著雙擊“萬維網服務”,在彈出的窗口中勾選“遠程桌面Web連接”后,開始安裝選中的組件。
在安裝該組件后,可以在遠程計算機的IE地址欄中輸入服務器IP地址或名稱/tsweb/(如http://192.100.100.16/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://192.100.100.16:8080/default.asp)使用Web接口管理流媒體服務器了。輸入網址并按回車鍵后,就可以看到Windows
Media
Services的Web接口管理頁面了。
為了安全考慮(防止其他用戶管理Windows
Media
Services),大家可以在退出Web接口管理頁面時,輸入網址http://192.100.100.16:8080/WMSLogOff.asp來注銷本次管理。
遠程維護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服務器的主機名)。
展開正向搜索區域。
在正向搜索區域下,右鍵單擊所需區域(例如,域名.com。),然后單擊新建別名(CNAME)。
在“別名”框中,鍵入www。
在“目標主機的完全合格的名稱”框中,鍵入安裝
IIS
的
DNS
服務器的完全合格的主機名。例如,鍵入
dns.域名.com,然后單擊確定。
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
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優化器中,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
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的優化器中即使是COUNT(*)查詢,返回的總數也是1。
也就是說,沒有辦法通過SQL獲得DUAL表中真正的記錄數。
雖然SQL中沒有辦法,但是PL/SQL是可以的,否則也不會導致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;
回退已完成。
通過這個結果也可以看出,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是緩沖區大小(當緩沖區不夠大時,該參數返回實際需要的大。瑓礲Order指示連接表是否需要按“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
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
數據備份開始……>>%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:數據庫備份重啟日志.txt@echo
系統于%date%
%time%重啟完成。>>%logfile%echo
===================系統于%date%
%time%正常啟動===================>>%logfile%@echo.>>%logfile%exit
開機代碼主要是檢查重起一共用時多少,從而發現系統是否有問題了.把開機代碼放到啟動目錄就OK了.紅色是重起日志目錄.綠色的是pubwin服務器的數據庫路徑,根據自己的設定...藍色部分是數據庫備份位置,根據日期建立.
【透視Windows 的Web接口的方法參考】相關文章:
手繪中的透視方法08-18
微軟Windows7自動安裝的方法07-23
Windows7加快系統速度的方法08-12
java實現web服務器的方法10-14
采購管理的參考方法09-11
web程序設計選擇題及參考答案06-27
俄語的學習方法參考07-28
Web Workers加速移動Web應用07-01
USB接口無法識別U盤的原因及解決方法09-05