您的位置:首页 > 其它

在ROS的PPPOE IP变的时候自动修改DNS记录,实现DDNS

2014-08-13 21:47 288 查看
网上此类教程比较多了

从更新方式看:

1. 使用 /tool dns-update 配合 www.changeip.com 账户提交

2. 使用 /tool fetch 构造url提交

当然第二种更具灵活性, 可以随意选择dns服务提供商

从提交检测上看:

1. 不检测IP变化, 定时提交当前IP

2. 随时检测IP变化, 只在IP变化的时候才提交更新

当然第二种更及时,且不会导致服务器端由于频繁提交更新而导致问题

下面是使用 http://zonomi.com DNS服务的一个示例, 放到scheduler下2秒检查一次即可:

global gout201
local lout201 [/ip address get [/ip address find interface="pppoe-out201"] address]

if ( ( $lout201 != "" ) && ( $lout201 != $gout201 ) ) do={
log info "DDNS: Sending UPDATE!"
put $lout201
local end [find $lout201 /]
local addr [pick $lout201 0 $end]
local url ("http://zonomi.com/app/dns/dyndns.jsp?action=SET&name=xxx.com&value=".$addr."&type=A&ttl=1&api_key=xxx")
/tool fetch url=$url
}

global gout201 $lout201




思路:

将当前的IP保存为global 变量, 这样在脚本结束的时候, 变量还存在, 下次执行脚本的时候就可以对比 IP 是不是有变化

当前的IP有变化的时候, 也可能是拨不上号了, 当前IP为空, 这样的话不交更新, 只有获得IP且不和上次一样的时候才更新

另外还有一种简单的获取当前ros IP的办法:

/tool netwatch add host=x.x.x.x  interval=1


然后在x.x.x.x 上抓icmp包即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: