利用循环实现,内容及说明如下:
#Script ADSL install 以下为本ADSL接入脚本安装部分
#本方法用循环的方法实现,安装比上次发的方便得多
#本脚本实现的功能为多ADSL接入,每条ADSL在路由表里做了路由标记
#接入后的用法请大家自行解决
#请将以下代码粘贴到你ROS的Terminal中或者将本文件导入ROS
#然后在system script下打开名为adsl-set的脚本,按照说明进行设置
#设置好后执行adsl-set脚本即可
/system script add name="adsl-set" source={
#以下为初始设置脚本,请务必按照说明进行设置,设好后运行本脚本
#在下面定义ADSL接入的数量
:global x 3
#在下面定义ADSL接口名前缀
:global pppoe-name pppoe-out
:for i from=1 to=$x do={
/ip address add address=("1.1.1." . $i . "/32") interface=($pppoe-name . $i) comment=("adsl" . $i)
/ip route add gateway=("1.1.1." . $i) routing-mark=("c" . $i) comment=("adsl" . $i)
}
/system scheduler enable adsl
/system script remove adsl-set
}
#----------------------------------#
/system scheduler add name=adsl disabled=yes comment=adsl interval=20s on-event={
#ADSL接入脚本开始
:for i from=1 to=$x do={
/interface pppoe-client monitor ($pppoe-name . $i) once do={:global adsl-statu $status}
:if ($adsl-statu="connected") do={
:global adsl-ip-d [/ip address get [/ip address find interface=($pppoe-name . $i) dynamic=yes] address]
:global adsl-ip-n [/ip address get [/ip address find comment=("adsl" . $i)] address]
:global adsl-ip [:pick $adsl-ip-d 0 [:find $adsl-ip-d "/"]]
:if ($adsl-ip-n != $adsl-ip-d) do={
/ip address set [/ip address find comment=("adsl" . $i) interface=($pppoe-name . $i) dynamic=no] address=$adsl-ip-d network=$adsl-ip broadcast=$adsl-ip disabled=no
/ip route set [/ip route find comment=("adsl" . $i)] gateway=$adsl-ip
#这里写ADSL上线以后的动作,比如策略路由更改启停,动态域名更新等等
#下面一条是调用我的DDNS更新脚本,不需要的可以删掉
/system script run ddnsUpdate
}
} else={#这里写ADSL掉线后的动作}
}
}
#Script ADSL uninstall
/system script add name="adsl-scr-unins" source={
#以下为本ADSL接入脚本卸载部分
/system scheduler remove adsl
:for i from=1 to=$x do={
/ip address remove ("adsl" . $i)
/ip route remove ("adsl" . $i)
}
/system script remove adsl-scr-unins
}
以下为使用changeIP的动态域名更新服务的脚本,用之前请自行到www.changeip.com去申请帐号~
#Script DNSupdate install
#以下为DDNS更新脚本
/system script add name="ddnsUpdate" source={
#ChangeIP的注册用户名
:global u "username"
#ChangeIP的注册密码
:global p "password"
#ChangeIP的子域名前缀
:global m "A record name"
#ChangeIP的域
:global z "Domain"
:for j from=1 to=$x do={
/interface pppoe-client monitor ($pppoe-name . $j) once do={:global adsl-statu $status}
:if ($adsl-statu="connected") do={
:log info ("ddnsUpdate: ADSL" . $j . " ddnsUpdate process start !")
:global ddns-ip-d [/ip address get [/ip address find interface=($pppoe-name . $j) dynamic=yes] address]
:global ddns-ip [:pick $ddns-ip-d 0 [:find $ddns-ip-d "/"]]
:global n ($m . $j)
:global k 0:while($k<1) do={
:global res-ip [:resolve ($n . "." . $z)]
:if (($res-ip) != (0.0.0.0)) do={
:if (($res-ip) != $ddns-ip) do={
:log info ("ddnsUpdate: ADSL" . $j . " IP Address is " . $ddns-ip . " sending update")
/tool dns-update name=$n zone=$z address=$ddns-ip key-name=$u key=$p
:delay 60} else={:set k ($k+1):log info ("ddnsUpdate: ADSL" . $j . " IP Address is " . $ddns-ip . " no change")}
}
}
}
}
}
国内域名都需要备案,所以没人敢再冒险随意让人使用了。国外的很多,你搜索免费二级域名即可。
比如 http://www.changeip.com/
国内你可以试试花生壳免费动态域名
联系你的DNS提供商,如何把DNS转入他们家,通常在他们网站有教程,如果没有可咨询他们客服。如果他们客服不协助或者指导,那就可以不用他们家了。我现在用的DNS是DNSPOD,如何使用官方都有教程。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)