透视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是缓冲区大小(当缓冲区不够大时,该参数返回实际需要的大小),参数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
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 2003的Web接口的方法参考】相关文章: