簡體   English   中英

在Mac上使用Expect通過telnet訪問路由器

[英]Using expect on a Mac to access a router via telnet

我正在嘗試在Mac上編寫腳本,該腳本應通過telnet訪問路由器。 這是為了增強路由器的功能,而這是無法通過Web完成的。

問題是telnet通道被阻止,為了解鎖它,我需要運行以下指令:

/users/shared/telnetenable - 200CC8132A36 admin password >/dev/udp/192.168.0.1/23

現在,我可以打開一個telnet連接,但是為了將命令發送到路由器,我需要按預期進行所有操作。 因此,我的文件開始於:

#!/usr/bin/expect -f

並且所有指令之前都產生了代碼,例如

spawn telnet 192.168.0.1

而發送到路由器的命令是:

send "wl -a wl0 txpwr 100\n"

我的問題是,我不知道如何通過生成在路由器上解鎖telnet的指令來運行。 有誰能夠幫助我?

您不必使用spawn來運行非交互式命令。 Tclexec命令就足夠了。 例如:

#!/usr/bin/expect

# the ``/dev/udp/host/port'' syntax is bash specific
exec bash -c "/users/shared/telnetenable - 200CC8132A36 \
              admin password > /dev/udp/192.168.0.1/23"

spawn telnet 192.168.0.1
... ...

Expect還具有system命令,因此您也可以

system "/users/shared/telnetenable - 200CC8132A36 \
        admin password > /dev/udp/192.168.0.1/23"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM