当前位置:首页 > Mikrotik > 正文

Ros 5.XX 自动获取域名IP并添加到IP列表里

以下是收集常用快递物流IP服务器脚本

-------------------------------------------------------------

# apr/06/2016 14:41:23 by RouterOS 5.24
# software id = W5EY-LHT9
#

#自动获取域名服务器IP地址
#服务器域名关键字,多个关键字之间用逗号分隔
:local 77RunSTR "yundaex,ytoexpress,sto.cn,800bestex,chinapost,ttkdex,zto,sf-express,ems,zjs,qfkd,deppon,hoau,sure56,uc56,ycgwl,jiayi56,lbex,fedex,dhl,tnt,ups,usps,183";
#IP地址列表名
:local 77RunLST "KuaiDi";
#取得DNS缓存的A记录
:local id [/ip dns cache all find type="A"];
#对记录进行分析
:foreach i in=$id do={;
#取得域名
:local dom [/ip dns cache all get $i name];
:local found "no";
#判断域名中是否有指定的关键字
:foreach k in=[:toarray $77RunSTR] do={
  :if ([:find $dom $k] >= 0) do={:set found "yes";}
}
#找到关键字后,进行判断是否已存在IP,不存在就把IP地址保存在指定地址列表中
:if ($found="yes") do={
if ([:len [/ip firewall address-list find  where address=[/ip dns cache all get $i data] list=$77RunLST]] < 1) do={ 
   /ip firewall address-list add list=$77RunLST disabled=no address=[/ip dns cache all get $i data] comment=$dom
   }
  }
}


请按自己需要修改以下红色部分即可,如需要收集163的域名服务器IP地址.

修改第一个红色参数

:local 77RunSTR "163"

修改第二个红色参数

:local 77RunLST www.163.com;

收集完之后自己在到防火墙添加规则实现放行或禁止即可。

如有好的建议请联系作者邮箱:alex#163.com  (#改为@小老鼠)


经验分享:

1,域名关键字如果比较短或含有常见关键字的,可以加上尾部完整域名。如申通网址只添加sto,就会把很多带有sto的域名全部收集了,比如QQ服务器群就有大部分带sto关键字,因此我改为sto.cn。

2,将脚本添加到System--scheduler,刚使用先设置执行时间15分钟左右,大概执行几天后,可以将周期改到1小时或以上。因为前期已经收集了95%以上的IP,后期定期执行更新即可。

更新时间 2017-04-15