您当前的位置: 首页 > 网站编程 > ASP教程 > 如何在ASP程序中使用Telnet协议

如何在ASP程序中使用Telnet协议

作者:guanchaofeng 来源:不详 发布时间: 2009-10-18 19:18 点击:
1设计背景 越来越多的企业在建立自己的WEB站点时选择了基于微软的构架。Windows操作系统、IISWEBServer和ASP技术得到了广泛的使用。但很多企业的网络中存在大量的UNIX主机,导致我们经常希望在浏览器中实现对UNIX系统资源的访问和控制,例如:通过浏览器查看

如何在ASP程序中使用Telnet协议

  1设计背景
  
  越来越多的企业在建立自己的WEB站点时选择了基于微软的构架。Windows操作系统、IISWEBServer和ASP技术得到了广泛的使用。但很多企业的网络中存在大量的UNIX主机,导致我们经常希望在浏览器中实现对UNIX系统资源的访问和控制,例如:通过浏览器查看UNIX系统中的用户进程、查看网络状态、甚至完成杀死一个进程这样的控制操作。以前我们可以通过Telnet程序远程登录到UNIX主机上,输入用户名和口令,并在命令行方式下输入命令。通过ASP中的ActiveX控件编程,我们同样可以使用Telnet协议访问UNIX主机,这样,UNIX系统中的资源就可以在B/S环境中得到更加充分的利用。
  
  2控件的功能
  
  本文要介绍的控件是美国DartCommunications公司开发的PowerTCPTools控件组中的TelnetToolActiveX控件。它支持VisualStudio、ASP、Office97(VBA)、C++Builder、Delphi、PowerBuilder等开发环境。
  
  它可以管理Telnet,rsh,rexec和rlogin连接,提供了建立、使用和终止会话的方法,支持自动选项协商,如终端类型、回显模式、窗口大小等,使用者不必关心协议实现细节,极大的简化了使用这些协议的编程难度。控件可以和UNIX主机、路由器、终端服务器等设备直接进行Telnet通信,并支持间接的Telnet访问。
  
  3控件的ASP编程方法
  
  TelnetToolActiveX控件的使用极其简单,下面介绍它的主要属性和方法。
  
  TermType属性:指定终端类型,如ANSI、VT320等,可以通知UNIX主机客户端所仿真的终端类型。
  
  Timeout属性:当设定为0值时,控件使用非阻塞方式控制会话。当设定为大于0的值时,控件使用阻塞方式控制会话,Timeout表示超时设定,单位为毫秒。
  
  State属性:返回TCP连接状态。
  
  Connect方法:建立一个连接,格式为:
  
  Object.ConnectRemoteName[,RemotePort][,LocalName][,LocalPort]。其中RemoteName为要连接的UNIX主机的名字或IP地址。RemotePort为要连接的UNIX主机的端口号,缺省为23,是标准的telnet端口。LocalName和LocalPort为本地主机名和端口,一般可以省略。
  
  Close方法:关闭一个连接,格式为Object.Close
  
  Send方法:在连接建立后,发送数据。格式为:
  
  Object.SendData。Data为要发送给UNIX主机的数据。
  
  Serach方法:接受UNIX主机返回的数据,并在数据流中寻找指定的结束标志,结果包括到结束标志为止的所有返回数据。如果在Timeout规定的时间内未得到指定的结束标志,则产生超时错误。格式为:Object.SearchData,Token。Data中保存返回结果,Token指定了结束标志字符串。
  
  4编程实例
  
  下面是一个简单的TelnetToolActiveX控件的ASP编程实例。实验环境是:Windows2000Professional、IIS5.0、SCOOpenServer5.0.2和TelnetToolActiveX控件。TelnetToolActiveX控件可以在www.dart.com下载30天试用版,只需要安装在WEB服务器上。
  
  程序并不复杂,登录到一个SCOUNIX系统后,执行了2条命令,命令的结果显示在浏览器页面上。
  
  HTML
  
  HEADTITLEPowerTCPTelnetToolDemoPage/TITLE/HEAD
  
  BODY
  
  *******************************************************************
  
  Program:PowerTCPTelnetToolDemo
  
  Author:Yin
  
  Date:07/16/2001
  
  Purpose:TodemonstratehowtologinintoaSCOUNIXserver.
  
  ********************************************************************}
  
  
  SubDoLogin()
  Session(RESULT)=
  OnErrorResumeNext
  CreateaTelnetcontrol
  DimTelnet1
  SetTelnet1=Server.CreateObject(Dart.Telnet.1)
  Usea10secondtimeout
  Telnet1.Timeout=10000
  Specifiesterminaltype
  Telnet1.TermType=ansi
  AddResultConnectingto+txtHost+...+vbCrLf
  Connecttothehostonport23
  Telnet1.ConnecttxtHost,23
  Dimastringtobeusedbythesearchmethod
  DimData
  Data=
  Searchforloginprompt
  Telnet1.SearchData,txtLoginPrompt
  AddResultData
  Sendusername
  Telnet1.SendtxtUser+vbCrLf
  Searchforpasswordprompt
  Telnet1.SearchData,txtPassPrompt
  AddResultData
  Sendpassword
  Telnet1.SendtxtPass+vbCrLf+vbCrLf
  Searchforcommandprompt
  Telnet1.SearchData,txtCommandPrompt
  AddResultData
  Sendcommand
  Telnet1.Sendps+vbCrLf
  Searchforcommandprompt
  Telnet1.SearchData,txtCommandPrompt
  AddResultData
  Sendcommand
  Telnet1.Sendnetstat-rn+vbCrLf
  Searchforcommandprompt
  Telnet1.SearchData,txtCommandPrompt
  AddResultData
  Closetheconnection
  Telnet1.Close
  IfErr.number=0then
  AddResultvbCrLf+Disconnecting...SUCCESS!
  Else
  Displayinfoabouttheerror
  AddResultvbcrlf+ERROR#+CStr(Err.number)+:+Err.Description
  Endif
  Response.WriteSession(RESULT)
  EndSub
  PrivateSubAddResult(s)
  Session(RESULT)=Session(RESULT)+ReadyForHtml(s)
  EndSub
  SubstituteescapecodesforsomeoftheHTMLreservedcharacters
  FunctionReadyForHtml(Data)
  OnErrorResumeNext
  ReadyForHtml=Data
  ReadyForHtml=Replace(ReadyForHtml,,gt;)
  ReadyForHtml=Replace(ReadyForHtml,,lt;)
  ReadyForHtml=Replace(ReadyForHtml,,nbsp;)
  ReadyForHtml=Replace(ReadyForHtml,vbCrLf,brnbsp;)
  ReadyForHtml=Replace(ReadyForHtml,vbCrLf,br)
  EndFunction
  DimtxtHost
  DimtxtLoginPrompt
  DimtxtUser
  DimtxtPassPrompt
  DimtxtPass
  DimtxtCommandPrompt
  txtHost=192.0.1.6
  txtLoginPrompt=login:
  txtUser=root
  txtPassPrompt=Password
  txtPass=hp123
  txtCommandPrompt=#
  DoLogin()
  5小结
  
  通过使用TelnetToolActiveX控件,我们可以在ASP程序中登录到UNIX系统上,轻松地完成很多命令行操作。类似的,我们也可以实现通过浏览器查看CISCO路由器、交换机中的网络配置和运行状态。
  
  企业的防火墙设置一般来说应该禁止从外部网直接远程登录到内部的UNIX主机上,但是我们可以通过在浏览器上简单的点击选择特定的操作,由WEBServer端的ASP程序登录到UNIX主机上完成指定操作,在方便管理的同时增加了系统的安全性。
  
  当然,我们在ASP编程中应该随时考虑到安全性问题,尤其是要避免不慎造成的ASP源代码和UNIX口令的泄露。

分享到:
本文"如何在ASP程序中使用Telnet协议"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4