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

来源:互联网 发布:ubuntu怎么配置ip 编辑:程序博客网 时间:2024/04/29 20:58

网上此类教程比较多了

从更新方式看:

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 gout201local lout201 [/ip address get [/ip address find interface="pppoe-out201"] address]if ( ( $lout201 != "" ) && ( $lout201 != $gout201 ) ) do={log info "DDNS: Sending UPDATE!"put $lout201local 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包即可





0 0
原创粉丝点击