找回密码
 加入
搜索
查看: 4692|回复: 6

[网络通信] 怎样在AU3中运行TELNET命令管理服务器

  [复制链接]
发表于 2013-12-21 20:15:30 | 显示全部楼层 |阅读模式
怎样在AU3中运行TELNET命令管理服务器?比如我要首先TELNET进服务器,telnet 192.168.1.1然后输入账号root 密码casa,然后再运行命令enbale,回车在运行命令show run 然后运行exit,请高手帮忙给写下代码,谢谢了
发表于 2013-12-21 20:55:54 | 显示全部楼层
Run("telnet.exe 192.168.1.1")
WinWaitActive("Telnet 192.168.1.1")
Send("root")
Send("{ENTER}")
Send("casa")
Send("{ENTER}")
Send("enable")
Send("{ENTER}")
Send("show run")
Send("{ENTER}")
Send("exit")
Send("{ENTER}")
 楼主| 发表于 2013-12-22 11:36:53 | 显示全部楼层
謝謝樓上的,你那是模擬操作,能不能幫忙寫一個代碼就是在后台操作的,谢谢了。高手在哪里?热心的人在哪里呀
 楼主| 发表于 2013-12-22 11:37:03 | 显示全部楼层
謝謝樓上的,你那是模擬操作,能不能幫忙寫一個代碼就是在后台操作的,谢谢了。高手在哪里?热心的人在哪里呀
发表于 2013-12-23 09:05:18 | 显示全部楼层
给你个参考
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
TCPStartup()
GUICreate("Telnet客户端", 500, 390, -1, -1, BitOr($WS_THICKFRAME, $WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU) )
$EDIT = GUICtrlCreateEdit("", 10, 10, 480, 330, $GUI_SS_DEFAULT_EDIT + $ES_READONLY)
GUICtrlSetFont(-1, 10, 0, -1, "Courier New")
GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
$INPUT = GUICtrlCreateInput("", 10, 360, 480, 20)
GUICtrlSetResizing(-1, 582)
$HOSTI =InputBox("Telnet客户端", "请输入您要连接到的主机名", "172.16.28.1")
$PORTI =InputBox("Telnet客户端", "请输入端口的主机", "23")
GUISetState()
ControlSend("Telnet客户端", "", $EDIT, "{TAB}")
$HOST = TCPNameToIP($HOSTI)
$CONECTION = TCPConnect($HOST, $PORTI)
If @error Then Exit
While 1
    $MSG = GUIGetMsg()
    If $MSG = $GUI_EVENT_CLOSE And (MsgBox(36, "Telnet登录", "你真的要退出么?") = 6) Then Exit
    $RECV = TCPRecv($CONECTION, 2048)
    If $RECV <> "" Then
        $RECV = StringReplace($RECV, @LF, @CRLF)
        $RECV = StringReplace($RECV, @CRLF & @CR, @CRLF)
        $TEXT = GUICtrlRead($EDIT)
        GUICtrlSetData($EDIT, $TEXT & $RECV)
        GUICtrlSendMsg($EDIT, 183, 0, 0)
    EndIf
    If $MSG = $INPUT Then
        $TEXT = GUICtrlRead($EDIT)
        $EINGABE = GUICtrlRead($INPUT)
        GUICtrlSetData($EDIT, $TEXT & $EINGABE & @CRLF)
        GUICtrlSetData($INPUT, "")
        TCPSend($CONECTION, $EINGABE & Chr(10))
        If @error Then
            MsgBox(0, "Telnet登录", "错误 - 退出")
            Exit
        EndIf
        GUICtrlSendMsg($EDIT, 183, 0, 0)
    EndIf
WEnd

Func ONAUTOITEXIT()
    TCPCloseSocket($CONECTION)
    TCPShutdown()
EndFunc

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2013-12-25 09:31:46 | 显示全部楼层
膜拜楼上的强人,非常感谢。学习了。
发表于 2013-12-27 12:57:32 | 显示全部楼层

楼上的方式只适用于简单的服务器类型,我试了vt220等字符串term的服务器都只能返回:“?”
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-24 03:01 , Processed in 0.076083 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表