伊缘网 首页
 设为首页    加入收藏    用户帮助    联系我们 
网站首页 新闻动态 技术文章 Flash整站 精彩网文 资源下载 视频教程
网上商城 Flash动漫 网页特效 酷站欣赏 BBS论坛 在线工具 留言本站
  F-CMS Flash CMS   CXT Flash Cms   SXW Flash CMS   EXW Flash Cms   
  您的位置: 伊缘网 >> 网络学堂 >> 建站技术 >> ASP 编程
 阅读文章

在ASP程序中使用Telnet协议

  文章作者:网络来源:星恋伊缘网浏览次数:4140字体:
 阅读权限:游客身份阅读花费:0 E币添加时间:2007-3-5 下午 11:05:23提交会员:esing
皮具制造生产企业,专注时尚包包
提示:登陆本站会员系统后,网站系统将不显示任何广告!如果您还不是本站会员请注册本站会员,谢谢您对本站的关注!

  1 设计背景

  越来越多的企业在建立自己的WEB站点时选择了基于微软的构架。Windows操作系统、IIS WEB Server和ASP技术得到了广泛的使用。但很多企业的网络中存在大量的UNIX主机,导致我们经常希望在浏览器中实现对UNIX系统资源的访问和控制,例如:通过浏览器查看UNIX系统中的用户进程、查看网络状态、甚至完成杀死一个进程这样的控制操作。以前我们可以通过Telnet程序远程登录到UNIX主机上,输入用户名和口令,并在命令行方式下输入命令。通过ASP中的ActiveX控件编程,我们同样可以使用Telnet协议访问UNIX主机,这样,UNIX系统中的资源就可以在B/S环境中得到更加充分的利用。

  2 控件的功能

  本文要介绍的控件是美国Dart Communications公司开发的PowerTCP Tools控件组中的Telnet Tool ActiveX控件。它支持Visual Studio、 ASP、Office 97 (VBA)、C++Builder、 Delphi、PowerBuilder 等开发环境。

  它可以管理Telnet, rsh, rexec和rlogin连接,提供了建立、使用和终止会话的方法,支持自动选项协商,如终端类型、回显模式、窗口大小等,使用者不必关心协议实现细节,极大的简化了使用这些协议的编程难度。控件可以和UNIX主机、路由器、终端服务器等设备直接进行Telnet通信,并支持间接的Telnet访问 。

  3 控件的ASP编程方法

  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指定了结束标志字符串。

  4 编程实例

  下面是一个简单的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

  HEADTITLEPowerTCP 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
  Connect to the host on port 23
  Telnet1.Connect txtHost,23
  Dim a string to be used by the search method
  Dim Data
  Data =
  Search for login prompt
  Telnet1.Search Data, txtLoginPrompt
  AddResult Data
  Send username
  Telnet1.Send txtUser + vbCrLf
  Search for password prompt
  Telnet1.Search Data, txtPassPrompt
  AddResult Data
  Send password
  Telnet1.Send txtPass + vbCrLf + vbCrLf
  Search for command prompt
  Telnet1.Search Data, txtCommandPrompt
  AddResult Data
  Send command
  Telnet1.Send ps + vbCrLf
  Search for command prompt
  Telnet1.Search Data, txtCommandPrompt
  AddResult Data
  Send command
  Telnet1.Send netstat -rn + vbCrLf
  Search for command prompt
  Telnet1.Search Data, txtCommandPrompt
  AddResult Data
  Close the connection
  Telnet1.Close
  If Err.number = 0 then
  AddResult vbCrLf + Disconnecting... SUCCESS!
  Else
  Display info about the error
  AddResult vbcrlf + ERROR # + CStr(Err.number) + : + Err.Description
  End if
  Response.Write Session(RESULT)
  End Sub
  Private Sub AddResult(s)
  Session(RESULT) = Session(RESULT) + ReadyForHtml(s)
  End Sub
  Substitute escape codes for some of the HTML reserved characters
  Function ReadyForHtml(Data)
  On Error Resume Next
  ReadyForHtml = Data
  ReadyForHtml = Replace(ReadyForHtml, , gt;)
  ReadyForHtml = Replace(ReadyForHtml, , lt;)
  ReadyForHtml = Replace(ReadyForHtml, , nbsp;)
  ReadyForHtml = Replace(ReadyForHtml, vbCrLf , brnbsp;)
  ReadyForHtml = Replace(ReadyForHtml, vbCrLf, br)
  End Function
  Dim txtHost
  Dim txtLoginPrompt
  Dim txtUser
  Dim txtPassPrompt
  Dim txtPass
  Dim txtCommandPrompt
  txtHost = 192.0.1.6
  txtLoginPrompt = login:
  txtUser = root
  txtPassPrompt = Password
  txtPass = hp123
  txtCommandPrompt = #
  DoLogin()
  5 小结

  通过使用Telnet Tool ActiveX控件,我们可以在ASP程序中登录到UNIX系统上,轻松地完成很多命令行操作。类似的,我们也可以实现通过浏览器查看CISCO路由器、交换机中的网络配置和运行状态。

  企业的防火墙设置一般来说应该禁止从外部网直接远程登录到内部的UNIX主机上,但是我们可以通过在浏览器上简单的点击选择特定的操作,由WEB Server端的ASP程序登录到UNIX主机上完成指定操作,在方便管理的同时增加了系统的安全性。

  当然,我们在ASP编程中应该随时考虑到安全性问题,尤其是要避免不慎造成的ASP源代码和UNIX口令的泄露。



  Tags:  ASP  程序中使用  Telnet协议  
·上篇文章:菜鸟安全防护Windows保密技巧
·下篇文章:Windows 2003巧筑服务器防火墙
复制 】 【 打印
 相关文章
·百度资料: 在ASP程序中使用Telnet协议
·asp.net 上传图片+自动生成缩略图+图片水印功能 2010-6-13 下午 05:28:41
·动手写个小组件(组件入门)_ASP 2010-5-23 上午 09:02:24
·ASP无组件上传错误 "80004005"解决方法 2010-4-26 下午 03:48:08
·ASP生成UTF-8文件实例 2010-1-8 上午 12:26:34
·在IE8下无组件上传错误"800a0005"的解决方法 2009-6-25 下午 06:27:51
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系我们,我们尽快予以更正,谢谢。
 相关评论
【文章评论已关闭】
伊缘网