我想ping我的路由器中的一些IP地址。我用這個代碼:發送「ping」輸出到一個變量
for {set n 0} {$n < 10} {incr n} {puts [exec "ping 199.99.$n.1]}
但是這會顯示輸出。 問題是我不想看到輸出。我想將這個輸出發送到另一個變量中,然後用「regexp」搜索變量的內容並獲得結果,並完成故事的其餘部分。 但我不知道我該怎麼做。
我想ping我的路由器中的一些IP地址。我用這個代碼:發送「ping」輸出到一個變量
for {set n 0} {$n < 10} {incr n} {puts [exec "ping 199.99.$n.1]}
但是這會顯示輸出。 問題是我不想看到輸出。我想將這個輸出發送到另一個變量中,然後用「regexp」搜索變量的內容並獲得結果,並完成故事的其餘部分。 但我不知道我該怎麼做。
嘗試調用-c標誌的平安:平安 -c 1 10.0.1.1
不知道如何做到這一點的,但TCL在PHP例如:
使用set
命令。 puts
命令打印它的參數。
set pingOutput [exec ping "199.99.$n.1"]
或者,如果你想在一個變量的所有IP的結果append
。
set allPingOutput ""
for {set n 0} {$n < 10} {incr n} {
append allPingOutput [exec ping "199.99.$n.1"]
}
這是非常重要的是使用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
的結果數組OUTPUT:
結果(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。