e_zhangiso 发表于 2018-8-29 18:49:02

如何判断外网是否连接

如图,外网设置dhcp-client,如何用脚本判断外网连接状态,请大神指教

e_zhangiso 发表于 2018-8-31 11:32:58

本帖最后由 e_zhangiso 于 2018-8-31 11:40 编辑

cspm333 发表于 2018-8-30 21:38
#要簡化script可以這樣編譯:
:local y 0
:foreach i in=uni-1,uni-2 do={

多谢指教,可以使用,但我考虑了下,外网自动获取IP的,通过监控这个"link-ok",不是很准确,还是监控/ip dhcp-client 中的status是否为bound,比较准确

显示网关参数的脚本,我请教了官方,给了回复

cspm333 发表于 2018-8-29 19:01:11

本帖最后由 cspm333 于 2018-8-29 19:02 编辑

:local "uni-1"
:local "uni-2"
/interface ethernet monitor uni-1 once do={:set "uni-1" $status}
/interface ethernet monitor uni-2 once do={:set "uni-2" $status}

/put $"uni-1"
/put $"uni-2"

e_zhangiso 发表于 2018-8-29 21:44:52

cspm333 发表于 2018-8-29 19:01
:local "uni-1"
:local "uni-2"
/interface ethernet monitor uni-1 once do={:set "uni-1" $status}


多谢指教,测试OK!

在多请教下,下图②中红色方框中"wan3",能用脚本提取出来吗?





cspm333 发表于 2018-8-29 22:20:05

e_zhangiso 发表于 2018-8-29 21:44
多谢指教,测试OK!

在多请教下,下图②中红色方框中"wan3",能用脚本提取出来吗?


若只要wan3這個解答:
:local "gateway-status" [:tostr gateway-status]]
:set "gateway-status" [:pick $"gateway-status" ([:find $"gateway-status" "via"]+5) [:len $"gateway-status"]]
/put $"gateway-status"

若是reachable wan3這個解答:
:local "gateway-status" [:tostr gateway-status]]
:set "gateway-status" [:pick $"gateway-status" ([:find $"gateway-status" "via"]+5) [:len $"gateway-status"]]
:set "gateway-status" "reachable $"gateway-status""
/put $"gateway-status"


e_zhangiso 发表于 2018-8-29 22:23:39

针对第一次的图,根据大神提示,我写了个统计外网连线数量的脚本,感觉有点繁琐,请各位指正

{
:local x1
:local x2
:local y
:local y1
:local y2
/interface ethernet monitor "uni-1" once do={:set x1 $status}
/interface ethernet monitor "uni-2" once do={:set x2 $status}
:if (($x1~"link-ok")=yes) do={
:set y1 "1"} else={set y1 "0"}
:if (($x2~"link-ok")=yes) do={
:set y2 "1"} else={set y2 "0"}
:set y [:put ($y1+$y2)]
:put $y
}

e_zhangiso 发表于 2018-8-29 22:38:04

cspm333 发表于 2018-8-29 22:20
若只要wan3這個解答:
:local "gateway-status" [:tostr gatewa ...

膜拜!!!!!

cspm333 发表于 2018-8-30 00:51:22

本帖最后由 cspm333 于 2018-8-30 02:02 编辑

擷取pppoe的撥號參數:
/interface pppoe-client monitor pppoe-out1 once do={}


47771885 发表于 2018-8-30 12:08:09

本帖最后由 47771885 于 2018-8-30 12:44 编辑

{
/ip dhcp-client
:local a;:local b;
:local aa
:foreach i in=$aa do={
:set a ;
:set b
#:put ($a . " " . $b)
:if ($b = "bound") do={
:log warning ($a . " " . $b)
} else={
:log error ($a . " " . $b)
}
}
:log warning ("\BB\B6\D3\AD\CA\B9\D3\C3Www.ros.sh\BD\C5\B1\BE");
}












---------------------------ethernet 修改 uni"] 参数为实际应用
{
/interface ethernet
:local aa
:foreach i in=$aa do={
monitor $i once do={
#:put ($name . " " . $status . " " .$rate)
:if ($status = "link-ok") do={
:log warning ($name . " " . $status . " " .$rate)
} else={
:log error ($name . " " . $status)
}
}
}
:log warning ("\BB\B6\D3\AD\CA\B9\D3\C3Www.ros.sh\BD\C5\B1\BE");
}





cspm333 发表于 2018-8-30 21:38:41

本帖最后由 cspm333 于 2018-8-31 11:35 编辑

e_zhangiso發表於2018-8-29 22:23
針對第一次的圖,根據大神提示,我寫了個統計外網連線數量的腳本,感覺有點繁瑣,請各位指正

{

#要簡化script可以這樣編譯:
:local y 0
:foreach i in=uni-1,uni-2 do={
/interface ethernet monitor $i once do={
 :if ($status="link-ok") do={:set y ($y+1)}
}
}
/put $y

页: [1]
查看完整版本: 如何判断外网是否连接