透视Windows 的Web接口的方法参考

时间:2024-10-30 04:32:35 Web Services 我要投稿
  • 相关推荐

透视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 的Web接口的方法参考】相关文章:

手绘中的透视方法08-18

微软Windows7自动安装的方法07-23

Windows7加快系统速度的方法08-12

Windows系统常见的几个故障及解决方法08-12

java实现web服务器的方法10-14

采购管理的参考方法09-11

web程序设计选择题及参考答案06-27

俄语的学习方法参考07-28

Web Workers加速移动Web应用07-01

USB接口无法识别U盘的原因及解决方法09-05