使用DDNS把动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序通过信息传递把该主机的动态IP地址传送给服务器程序,服务项目程序提供DNS服务并实现动态域名解析。
脚本如下:
:globalddnsuser "hao666"
:globalddnspass "hao123456"
:globalddnshost "haotest666.hao.com"
:globalddnsinterface "pppoe-out1"
:globalddnslastip
:globalddnsip [ /ip address get [/ip address find dynamic=yes interface=$ddnsinterface] address ]
:if ([:typeof $ddnslastip]="nothing" ) do={ :global ddnslastip 0.0.0.0/0 }
:if ([:typeof $ddnsip]="nothing" ) do={
:log info ("DDNS: No ip address presenton " . $ddnsinterface . ", please check.")
} else={
:if ($ddnsip != $ddnslastip) do={
:log info "DDNS: Sending UPDATE!"
:log info [ /tool dns-update name=$ddnshostaddress=[:pick $ddnsip 0 [:find $ddnsip "/"] ] key-name=$ddnsuserkey=$ddnspass ]
:global ddnslastip $ddnsip
} else={
:log info "DDNS: No change"
}
}
:log info"DDNS: End"
ddnsuser为设置的用户名
dnspass为用户密码
ddnshost为设置的域名
ddnsinterface为动态地址的出口
注意:ddnshost域名在changeip上申请。
我们将脚本添加到计划任务中:
Name:这里取名为DDNS,区别其他计划任务规则
Interval:间隔执行时间,这里定义每间隔1分钟执行一次,也可以根据情况自行调整,建议不要设置太频繁
On-Even:脚本编写框,填写执行脚本
Policy:执行脚本的权限,默认没有设置,需要自己定义