RouterOS自动获取大陆IP
近期有给家里的网络做个分流,这里记录下脚本
将以下脚本放入system-scripts里面
{
:global result [/tool fetch url=https://raw.githubusercontent.com/misakaio/chnroutes2/master/chnroutes.txt as-value output=user];
# 路由表定义
:global "routetable" "国内网络"
:if ($result->"status" = "finished") do={
# 清空定义的路由表
:foreach i in=[/ip route rule find table=$routetable] do={
:do {
/ip route rule remove number=$i
} on-error={ };
}
:global content ($result->"data");
:global contentLen [ :len $content ] ;
:global lineEnd 0;
:global line "";
:global lastEnd 0;
:do {
:set lineEnd [:find $content "\n" $lastEnd ] ;
:if ([:typeof $lineEnd] = "nil") do={
:error done
}
:set line [:pick $content $lastEnd $lineEnd] ;
:set lastEnd ( $lineEnd + 1 ) ;
:if ( [:pick $line 0 1] != "#" ) do={
:local entry [:pick $line 0 $lineEnd ]
:if ( [:len $entry ] > 0 ) do={
# 从 result 处每行获取路由并加入ip route rule
/ip route rule add action=lookup-only-in-table dst-address=$entry table=$routetable
}
}
} while ($lineEnd <= $contentLen) on-error={}
}
}
可以设置一个cron定时运行进行更新
到这里路由表里面就已经出现了一个叫国内网络的表了,针对这个表就可以继续使用mangle或者rules进行修改下一跳进行分流了
是不是很简单
阅读剩余
版权声明:
作者:Admin
链接:https://www.shellop.com/archives/18
文章版权归作者所有,未经允许请勿转载。
THE END