在 Mac 上使用 expect 通过 telnet 访问路由器
Using expect on a Mac to access a router via telnet
我正在尝试在 Mac 上编写一个脚本,它应该通过 telnet 访问路由器。这是为了增强路由器的功率,这是通过网络无法做到的。
问题是 telnet 通道被阻塞了,为了解锁它我需要 运行 以下指令:
/users/shared/telnetenable - 200CC8132A36 admin password >/dev/udp/192.168.0.1/23
现在,我可以打开一个 telnet 连接,但为了向路由器发送命令,我需要使用 expect 完成所有这些操作。所以,我的文件开始于:
#!/usr/bin/expect -f
并且所有指令都以 spawn 开头,例如
spawn telnet 192.168.0.1
而发送到路由器的命令是:
send "wl -a wl0 txpwr 100\n"
我的问题是我不知道如何 运行 通过 spawn 解锁路由器上的 telnet 的指令。有人可以帮助我吗?
您不必使用 spawn
到 运行 非交互式命令。 Tcl
的exec
命令就够了。例如:
#!/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"
我正在尝试在 Mac 上编写一个脚本,它应该通过 telnet 访问路由器。这是为了增强路由器的功率,这是通过网络无法做到的。
问题是 telnet 通道被阻塞了,为了解锁它我需要 运行 以下指令:
/users/shared/telnetenable - 200CC8132A36 admin password >/dev/udp/192.168.0.1/23
现在,我可以打开一个 telnet 连接,但为了向路由器发送命令,我需要使用 expect 完成所有这些操作。所以,我的文件开始于:
#!/usr/bin/expect -f
并且所有指令都以 spawn 开头,例如
spawn telnet 192.168.0.1
而发送到路由器的命令是:
send "wl -a wl0 txpwr 100\n"
我的问题是我不知道如何 运行 通过 spawn 解锁路由器上的 telnet 的指令。有人可以帮助我吗?
您不必使用 spawn
到 运行 非交互式命令。 Tcl
的exec
命令就够了。例如:
#!/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"