Mr_TianShu:
#更新中国IP-ByS3792274
ip firewall address-list
:local fname mylog/cn_ips.txt
:local fsize [/file/get $fname size]
:local max 32768
:local data
:local cnip
:local listname CN_IP
:local delimiter "\n"
/tool fetch url="http://www.ipdeny.com/ipblocks/data/countries/cn.zone" dst-path=$fname
:local chunks (($fsize / $max) - 1)
:if ($fsize > ($max * $chunks)) do={ :set $chunks ($chunks + 1) }
:put $chunks
:for i from=0 to=$chunks do={
:local offset ($i * $max)
:local varchunk [/file/read file=$fname offset=$offset chunk-size=$max as-value]
:set $data ($data . ($varchunk->"data"))
}
:if ([:len $data]!=0) do={/ip firewall address-list remove [find list=$listname]}
:while ([:len $data]!=0) do={
:if ([:pick $data 0 [:find $data "\n"]]~"^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}") do={
:set cnip [:pick $data 0 [:find $data $delimiter]];
#:log info $cnip
:do {add list=$listname address=$cnip} on-error={}
}
:set data [:pick $data ([:find $data $delimiter ]+1) [