找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 11165|回复: 19

最近ddns不正常,编了个3322.org的更新脚本

[复制链接]
因为最近版本的ddns不能正常更新,查了3322的wget更新方法,写个脚本,因为手上是mentohust-wrt.googlecode.com上已经编译好放入mentohust的版本,没有jffs,所以在启动命令中生成临时的脚本供开机和crontab调用

在mentohust认证通过后产生和执行脚本,不会写生成脚本的更好的方法,全用了echo,看上去有点乱,替换UID/PWD/HOSTNAME几项就可以了

写的很垃圾,请指正:)


sleep 30

# start up mentohust
mentohust -uXXXXXX -pXXXXXX -neth0 -a1 -d2 -b1

sleep 5

# generate 3322.sh
echo "" > /tmp/root/3322.sh
echo "WAN_IP=\`nvram show | grep 'wan_ipaddr=\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}'\`" >> /tmp/root/3322.sh
echo "WANIP=\`echo \${WAN_IP/wan_ipaddr=/}\`" >> /tmp/root/3322.sh
echo "echo \"Connecting 3322.org, setting ddns to: \$WANIP\"" >> /tmp/root/3322.sh
echo "" >> /tmp/root/3322.sh
echo "UID='XXXXXX'" >> /tmp/root/3322.sh
echo "PWD='XXXXXX'" >> /tmp/root/3322.sh
echo "HOSTNAME='XXXXXX.3322.org'" >> /tmp/root/3322.sh
echo "" >> /tmp/root/3322.sh
echo "wget -q -O ipupdate \"http://\$UID:\$PWD@members.3322.org/dyndns/update?&hostname=\$HOSTNAME&myip=\$WANIP\"" >> /tmp/root/3322.sh
echo "ret=\`awk '{if(\$1~/good/ || \$1~/nochg/) print \$1}' ipupdate|sed -n '1p'\`" >> /tmp/root/3322.sh
echo "if [ \"\$ret\"=\"good\" -o \"\$ret\"=\"nochg\" ]; then" >> /tmp/root/3322.sh
echo "  echo \"update internet ip \$ret: \$WANIP\"" >> /tmp/root/3322.sh
echo "  logger \"update internet ip \$ret: \$WANIP\"" >> /tmp/root/3322.sh
echo "else" >> /tmp/root/3322.sh
echo "  echo \"update internet ip failure!"\" >> /tmp/root/3322.sh
echo "  logger \"update internet ip failure!"\" >> /tmp/root/3322.sh
echo "fi" >> /tmp/root/3322.sh
chmod 777 /tmp/root/3322.sh


# refresh ddns 3322.org
/tmp/root/3322.sh
 楼主| | 显示全部楼层
本帖最后由 awayfar 于 2011-10-20 21:07 编辑

生成的3322.sh


WAN_IP=`nvram show | grep 'wan_ipaddr=\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}'`
WANIP=`echo ${WAN_IP/wan_ipaddr=/}`
echo "Connecting 3322.org, setting ddns to: $WANIP"

UID=''
PWD=''
HOSTNAME=''

wget -q -O ipupdate "http://$UID:$PWD@members.3322.org/dyndns/update?&hostname=$HOSTNAME&myip=$WANIP"
ret=`awk '{if($1~/good/ || $1~/nochg/) print $1}' ipupdate|sed -n '1p'`
if [ "$ret"="good" -o "$ret"="nochg" ]; then
  echo "update internet ip $ret: $WANIP"
  logger "update internet ip $ret: $WANIP"
else
  echo "update internet ip failure!"
  logger "update internet ip failure!"
fi
回复

使用道具 举报

这个要支持。
回复

使用道具 举报

 楼主| | 显示全部楼层
请教一下现在最新版本的ddwrt修复了这个问题没有?:)
回复

使用道具 举报

这脚本要怎么用呢?
回复

使用道具 举报

 楼主| | 显示全部楼层
这脚本要怎么用呢?
taixiao 发表于 2011-10-27 01:46


1楼内容保存为启动命令
回复

使用道具 举报

mark

新版DD的问题??
回复

使用道具 举报

试了 终于可以更新了!谢谢LZ
回复

使用道具 举报

dd咋还犯这低级错误呢.
好几个更新版也没修改.
害的我还要刷回旧版.
15***几版开始都有问题.
回复

使用道具 举报

 楼主| | 显示全部楼层
9# xiaole51


就是遇到ddns的问题刷回旧版,但是稳定性不好,才想到这个办法

我们实验室,一台150r拖40台PC,现在用起来比较稳定
回复

使用道具 举报

好东西,进来看看
回复

使用道具 举报

本帖最后由 xiaole51 于 2011-11-6 00:47 编辑

我的咋不行呢?
直接复制2楼的内容保存在3322.sh文件内
telnet上去运行这个文件.有成功输出.
到3322去看地址没变化.
这是为虾米呢?

把1楼内容复制进web命令框内执行.
看到/tmp/root/3322.sh
但是不能执行,用winscp无法打开.
这又是为虾米呢?

楼主有没有研究过用DD的ddns下面有个自定义,这个应该能自定义成3322.
回复

使用道具 举报

今天发现最新版的可以用3322了.
昨天试着还不能链接,今天重启自动更新了.
难道就昨天服务器有问题了?我咋就这么背.
新版用的是:固件: DD-WRT v24-sp2 (05/17/11) std-nokaid-usb
回复

使用道具 举报

免费的3322动态域名支持吗?我好像有几年得不到正确的地址了,TOMATO。DD一样
回复

使用道具 举报

 楼主| | 显示全部楼层
我的咋不行呢?
直接复制2楼的内容保存在3322.sh文件内
telnet上去运行这个文件.有成功输出.
到3322去看地址没变化.
这是为虾米呢?

把1楼内容复制进web命令框内执行.
看到/tmp/root/3322.sh
但是不能执行,用 ...
xiaole51 发表于 2011-11-6 00:46


这个是用web更新,和ddwrt自定义原理不一样哈

不能执行应该是没有加可执行权限吧
chmod 777 /tmp/root/3322.sh

最新版的版本号的多少?这个重要,呵呵,支持了我就去更新了:)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-13 18:32

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表