亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

如何在ASP程序中使用Telnet協議
2007-02-12   網頁教學網

  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連接,提供了建立、使用和終止會話的方法,支持自動選項協商,如終端類型、回顯模式、窗口大小等,使用者不必關心協議實現細節,極大的簡化了使用這些協議的編程難度??丶梢院蚒NIX主機、路由器、終端服務器等設備直接進行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口令的泄露。

熱詞搜索:

上一篇:硬盤壞道修復及數據恢復寶典
下一篇:網站安全之ASP程序加密/解密方法大揭密

分享到: 收藏