我正在尝试在我的路由器中 ping 一些 IP 地址。我使用这段代码:
for {set n 0} {$n < 10} {incr n} {puts [exec "ping 199.99.$n.1]}
但这将显示输出。问题是我不想看到输出。我想将该输出发送到另一个变量中,并使用“regexp”搜索变量的内容并获得结果,然后完成剩下的事情。但我不知道我该怎么做。
使用set
命令。该puts
命令打印它的参数。
set pingOutput [exec ping "199.99.$n.1"]
或者append
,如果您希望所有 IP 的结果都包含在一个变量中。
set allPingOutput ""
for {set n 0} {$n < 10} {incr n} {
append allPingOutput [exec ping "199.99.$n.1"]
}
尝试使用 -c 标志调用 ping:ping -c 1 10.0.1.1
不知道如何在 tcl 但在 php 中执行此操作,例如:
使用非常重要 ping -c1 <IP address>
,否则脚本将永远不会结束,因为 ping 过程永远不会结束 :)
我的代码使用每个 IP 的结果数组
for {set i 2 } {$i < 10} {incr i} {
catch {if {[regexp {bytes from} [exec ping -c1 192.168.12.$i]]} {
set flag "reachable"
} else { set flag "not reachable"}
set result(192.168.12.$i) $flag
}
}
parray result
输出 :
结果(192.168.12.2)=可达
结果(192.168.12.3)=可达
结果(192.168.12.5)=可达
结果(192.168.12.6)=可达
结果(192.168.12.7)=可达
结果(192.168.12.9)=可达
我没有使用存储和操作,而是使用了 regexp。