ASP程序中使用Telnet协议
1 设计背景 越来越多的企业在建立自己的WEB站点时选择了基于微软的构架。Windows操作系统、IIS WEB Server和ASP技术得到了广泛的使用。但很多企业的网络中存在大量的UNIX主机,导致我们经常希望在浏览器中实现对UNIX系统资源的访问和控制,例如:通过浏览器查看UNIX系统中的用户进程、查看网络状态、甚至完成杀死一个进程这样的控制操作。以前我们可以通过Telnet程序远程登录到UNIX主机上,输入用户名和口令,并在命令行方式下输入命令。通过ASP中的ActiveX控件编程,我们同样可以使用Telnet协议访问UNIX主机,这样,UNIX系统中的资源就可以在B/S环境中得到更加充分的利用。 Telnet Tool ActiveX控件的使用极其简单,下面介绍它的主要属性和方法。 TermType属性:指定终端类型,如ANSI、VT320等,可以通知UNIX主机客户端所仿真的终端类型。 Timeout属性:当设定为0值时,控件使用非阻塞方式控制会话。当设定为大于0的值时,控件使用阻塞方式控制会话,Timeout表示超时设定,单位为毫秒。 State属性:返回TCP连接状态。 Connect方法:建立一个连接,格式为: Object.Connect RemoteName [,RemotePort] [,LocalName] [,LocalPort] 。其中RemoteName为要连接的UNIX主机的名字或IP地址。RemotePort为要连接的UNIX主机的端口号,缺省为23,是标准的telnet端口。LocalName和LocalPort为本地主机名和端口,一般可以省略。 Close方法:关闭一个连接,格式为 Object.Close Send方法:在连接建立后,发送数据。格式为: Object.Send Data 。Data为要发送给UNIX主机的数据。 Serach方法:接受UNIX主机返回的数据,并在数据流中寻找指定的结束标志,结果包括到结束标志为止的所有返回数据。如果在Timeout规定的时间内未得到指定的结束标志,则产生超时错误。格式为:Object.Search Data,Token 。Data中保存返回结果,Token指定了结束标志字符串。 下面是一个简单的Telnet Tool ActiveX控件的ASP编程实例。 实验环境是: Windows 2000 Professional、IIS 5.0、SCO OpenServer 5.0.2和Telnet Tool ActiveX控件。Telnet Tool ActiveX控件可以在www.dart.com下载30天试用版,只需要安装在WEB服务器上。 程序并不复杂,登录到一个SCO UNIX系统后,执行了2条命令,命令的结果显示在浏览器页面上。<HTML> <HEAD><TITLE>PowerTCP Telnet Tool Demo Page</TITLE></HEAD> <BODY> <% '******************************************************************* ' Program: PowerTCP Telnet Tool Demo ' Author: Yin ' Date: 07/16/2001 ' ' Purpose: To demonstrate how to login into a SCO UNIX server. '********************************************************************} Sub DoLogin() Session("RESULT") = "" On Error Resume Next ' Create a Telnet control Dim Telnet1 Set Telnet1 = Server.CreateObject("Dart.Telnet.1")>' Use a 10 second timeout Telnet1.Timeout = 10000 'Specifies terminal type Telnet1.TermType = "ansi" AddResult "Connecting to " + txtHost + " ..." + vbCrLf ' Dim a string to be used by the search method ' Search for login prompt ' Send username ' Search for password prompt ' Send password ' Search for command prompt ' Send command ' Search for command prompt ' Send command ' Search for command prompt ' Close the connection Private Sub AddResult(s) ' Substitute escape codes for some of the HTML reserved characters Dim txtHost txtHost = "192.0.1.6" DoLogin() </BODY> 5 小结 通过使用Telnet Tool ActiveX控件,我们可以在ASP程序中登录到UNIX系统上,轻松地完成很多命令行操作。类似的,我们也可以实现通过浏览器查看CISCO路由器、交换机中的网络配置和运行状态。 企业的防火墙设置一般来说应该禁止从外部网直接远程登录到内部的UNIX主机上,但是我们可以通过在浏览器上简单的点击选择特定的操作,由WEB Server端的ASP程序登录到UNIX主机上完成指定操作,在方便管理的同时增加了系统的安全性。 当然,我们在ASP编程中应该随时考虑到安全性问题,尤其是要避免不慎造成的ASP源代码和UNIX口令的泄露。 |
- 上一篇:asp程序错误详细说明例表
- 下一篇:ASP登陆验证页应做的安全问题