找回密码
 加入
搜索
查看: 6078|回复: 15

再问如何向CMD里写命令? Telnet

  [复制链接]
发表于 2009-1-9 15:05:07 | 显示全部楼层 |阅读模式
第一次发帖,请大家多帮忙,先谢谢了

坛里子搜了一下,没有找到.就问一下:
我是用来定时开关交换机的端口

比如我是想执行这样的一串命令:
1/ 打开"开始""运行",输入CMD
2/在CMD窗口中输入:telnet 192.168.0.1
3/输入用户名:admin
4/输入密码:admin
5/进入系统视图,输入:system-view
6/输入:int e1/0/11
等等

周一打开,周五关闭,循环执行
------------------------------------------------

请问,如何实现,谢谢

[ 本帖最后由 老榆头 于 2009-3-12 21:11 编辑 ]
发表于 2009-1-9 20:22:42 | 显示全部楼层
telnet似乎不支持stdin/out
建议使用形如下列之脚本

;BEGIN SCRIPT----------------------------------------------
;simulates a TELNET connection

Global $host, $port, $delay, $user, $pass, $sk, $ack

$host = "192.168.1.1"
$port = 23
; miliseconds to wait before sending/receiving something
$delay = 300 ; compensates network/internet delays
$user = ""
$pass = ""

TCPStartup()
$sk = TCPConnect($host, $port)

;if invalid socket
If $sk = -1 Then
MsgBox(0, "", "Cannot connect")
Exit
EndIf

; message from device
Sleep($delay)
$ack = TCPRecv($sk, 150)
TrayTip("", $ack, 10)

; verifying the correct answer
If StringInStr($ack, "wl500gp login") >= 1 Then
; if the string is correct then we send user
Sleep($delay)
TCPSend($sk, $user & @CRLF)
Sleep($delay)
$ack = TCPRecv($sk, 80)
TrayTip("", $ack, 10)
; and password
Sleep($delay)
TCPSend($sk, $pass & @CRLF)
Sleep($delay)
$ack = TCPRecv($sk, 80)
TrayTip("", $ack, 10)
Else
MsgBox(0, "", "Cannot connect")
Exit
EndIf

; verifying the answer of the device (the prompt that it returns after receiving user and password)
If StringInStr($ack, "root]$") = 0 Then ; attention, this string is specific
MsgBox(0, "Error", "Access denied")
Exit
EndIf

; now you can send some commands
Sleep($delay)
TCPSend($sk, "ps" & @CRLF)
Sleep($delay)
$ack = TCPRecv($sk, 2000)
MsgBox(0,"Running processes", $ack)

TCPCloseSocket($sk)
TCPShutdown()
Exit
;END SCRIPT----------------------------------------------
 楼主| 发表于 2009-1-10 13:31:45 | 显示全部楼层
先谢谢星哥pcbar
我先试试
 楼主| 发表于 2009-1-10 19:54:01 | 显示全部楼层
原帖由 pcbar 于 2009-1-9 20:22 发表
telnet似乎不支持stdin/out
建议使用形如下列之脚本

;BEGIN SCRIPT----------------------------------------------
;simulates a TELNET connection

Global $host, $port, $delay, $user, $pass, $sk, $ack ...


不知道为什么,用上面的脚本TCPConnect($host, $port)总是返回-1(无法连接)
可是我用telnet,却可以正常连接
 楼主| 发表于 2009-1-12 08:48:09 | 显示全部楼层
现在还是不 能连接,什么原因?
发表于 2009-1-12 10:37:29 | 显示全部楼层
你不会是 直接复制的把? ip不对
 楼主| 发表于 2009-1-13 09:35:55 | 显示全部楼层
哦,当然不是的
而且我用XP自带的TELNET可以正常连接
就是用上面的代码,总是不可以?
 楼主| 发表于 2009-3-12 21:11:31 | 显示全部楼层
感谢pcbar
又照提示做了一下
可以了,方法就是根据pcbar提示
谢谢
发表于 2010-10-26 10:48:58 | 显示全部楼层
pcbar是什么东西,怎么调试成功的呀
发表于 2010-10-26 13:03:56 | 显示全部楼层
不好意思。

  上面的代码,我测试时,TCPConnect($host, $port)总是返回 ?????

一串问号,这是为什么呀
发表于 2011-1-22 23:25:32 | 显示全部楼层
pcbar提示的是什么内容呢??
发表于 2011-3-24 00:50:58 | 显示全部楼层
是啊,为什么我测试TCPConnect($host, $port)也是返回 ?????是什么问题啊?
发表于 2011-3-24 11:54:37 | 显示全部楼层
正常,回显信息前面有一段乱码。
我这里也是这样的。
发表于 2011-3-30 23:37:46 | 显示全部楼层
回复 2# pcbar [code]Global $host, $port, $delay, $user, $pass, $sk, $ack

$host = "192.168.1.81"
$port = 23
; miliseconds to wait before sending/receiving something
$delay = 300 ; compensates network/internet delays
$user = "admin"
$pass = ""

TCPStartup()
$sk = TCPConnect($host, $port)

;if invalid socket
If $sk = -1 Then
MsgBox(0, "", "Cannot connect")
Exit
EndIf

; message from device
Sleep($delay)
$ack = TCPRecv($sk, 150)
TrayTip("", $ack, 10)
ClipPut ($ack)

; verifying the correct answer
If StringInStr($ack, "?
发表于 2011-3-31 13:38:07 | 显示全部楼层
真可爱的楼主 学习一下 呵呵
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-19 08:03 , Processed in 0.076401 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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