ROS更新3322.org动态域名,有需要的拿去看看
找了N久,都没有找到ROS更新3322.org动态域名的方法,实在找不到了,于是只好自己动手写一个。原代码文件名为dyndns.c, 编译后的文件名为dyndns。
使用方法:
把ROS硬盘接在Linux系统的第3个IDE硬盘位置上,开机,以root登录
挂载ROS文件系统:
mount /dev/hdc1 /mnt
把dyndns.c文件复制到当前目录下,然后编译:
cc -o dyndns dyndns.c
不愿意编译的也可以直接用我编译好的文件
把编译得到的文件复制到ROS系统里:
cp dyndns /mnt/bin/
添加执行权限:
chmod +x /mnt/bin/dyndns
编辑ROS启动文件,使其开机就运行:
vi /mnt/etc/rc.d/rc.start
在文件的最后exit那行前加上下面一行文字(后面有个&):
[ -x /bin/dyndns ] && dyndns&
然后保存文件
卸载ROS文件系统:
umount /mnt
关机:
halt
把ROS硬盘装回去,开机
在WINDOWS上打开winbox-->Files, 稍等2分钟,等待系统全部就绪,
会看见有文件conf.ini,用鼠标把该文件拖到桌面上
打开桌面上的conf.ini文件,有如下内容:
#参数配置文件(等号前后不留空格)
USER= #域名拥有者的登录帐号
PASSWD= #域名拥有者的登录密码
DYNDNS= #动态域名
SERVER=222.185.245.239 #服务器members.3322.org的IP
DEVICE=ppp0 #动态IP的设备号
SLEEP=300 #检查更新的时间间隔(秒)
填好前面的三个参数,后面的三个参数为系统默认,也可以修改。
修改完保存文件,把该文件拖回到winbox-->File里原来的位置
等待大约SLEEP秒,conf.ini会被更新,打开该文件就看到结果了
遇到的问题:
1,ROS的内核里面,似乎不支持时区参数,时区偏移量总是0, 也许这就是ROS防火墙的扩展里面,对Time参数支持有问题的原因
2,ROS对C的域名解析函数似乎不太支持,测试若干次,只成功解析一次
3,只能得到设备号,不能得到ROS的设备名,有点遗憾,但似乎理论上是得不到的 部分截图 一头雾水,看不懂linux,不过是个好东西,帮顶 好帖~~多些这样的高手肯共享就好了~强烈支持~~ it is good:victory: 虽然不懂linux,但是这是个好东西,顶 diy ros 厉害..绝. 如果有更简单的就好了,能像www.changeip.com的用脚本更新法,那里最好的了!!真希望高手能出来帮弄一下! 3322.org的更新协议比较不同,但更合理,很多嵌入式网络设备都喜欢用3322.org域名,可靠性和可控性比较强 近来小有好文,冒个泡 老大帮一下忙!我想通过脚本获得某网站常变动的IP
:local ip1 www.baidu.com] address]
这样好像不对,帮我改一改! 晕,脚本详解里面有例子
你可以这样来测试
#变量说明并初始化
:local ip ""
#取得域名的IP
:set ip [:resolve www.baidu.com]
#如果确实取到了IP则接着做其他事,否则做错误处理
:if($ip!="") do={:log info ($ip . " OK")} \
else={:log error notfond} :victory:
记号先 从文档来看,ROS的DDNS是一个标准的协议
更新,增加了日志
2008-02-29更新1,增加了时区参数,请设置成与ROS的时区参数一样,以便正常显示时间,这个问题是ROS的BUG造成的,否则就不用该参数
2,增加了ROS的日志里面,有动态域名更新的日志,时间同步上,略有延迟,但基本不影响使用
安装方法:
1,把dyndns这个文件代替ROS里面原来的同名文件,方法参看原来的方法
2,打开dynlog.rsc文件,全选,把内容复制到 ROS的终端里面,回车即可
注:在ROS 2.9.27 上运行多天,尚未发现不良情况,其他版本没有测试过
[ 本帖最后由 hcb 于 2008-3-1 16:22 编辑 ]