找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
楼主: 游课最理智

【【【难题制造第一号】】】如何实现自定义DDNS。

[复制链接]
发表于 2018-11-8 22:38 | 显示全部楼层
本帖最后由 renchen1994 于 2018-11-22 20:22 编辑

按照楼主的需求,给你如下代码,你把它加入到“自定义设置-脚本-在 WAN 上行/下行启动后执行”脚本最后插入,每次开机可更新ddns,在“网络地图-外部网络状态”点击重连也可更新ddns。建议楼主设置每天定时重启路由器,以便每天更新DDNS,如果楼主已经解决该问题,请忽略我的回复,谢谢!
  1. #!/bin/sh
  2. export PATH='/opt/sbin:/opt/bin:/usr/sbin:/usr/bin:/sbin:/bin'

  3. meibuddns_name=testip
  4. meibuddns_pwd=ipmac
  5. meibuddns_domain=meibu.net
  6. meibuddns_dns="114.114.114.114"
  7. meibuddns_curl="curl -s ddns.oray.com/checkip"

  8. ip=`$meibuddns_curl 2>&1 | awk -F ": " '{print $2}' | awk -F "\<" '{print $1}'

  9. current_ip=`nslookup $meibuddns_name.$meibuddns_domain $meibuddns_dns 2>&1 | grep 'Address 1' | tail -n1 | awk '{print $NF}'`

  10. if [ "$ip" = "$current_ip" ]
  11. then
  12.         logger -t "【每步DDNS】" "每步DDNS解析正常,当前域名 $meibuddns_name.$meibuddns_domain" "IP:$ip"
  13.         exit 0
  14. else        
  15.         logger -t "【每步DDNS】" "每步DDNS解析异常,开始更新每步DDNS域名 IP 指向"
  16.         sleep 5
  17.         curl -s "http://main.meibu.com/ip/login.asp?name=$meibuddns_name.$meibuddns_domain&pwd=$meibuddns_pwd"
  18.         sleep 10
  19.         logger -t "【每步DDNS】" "每步DDNS域名IP更新成功,当前 IP:$current_ip,上次 IP:$ip"
  20.         killall -HUP dnsmasq
  21.         exit 0
  22. fi
复制代码

点评

感谢。可以正常运行,代码里有个小错误,我小小修正下。 ip=`$meibuddns_curl 2>&1 | awk -F ": " '{print $2}' | awk -F "\  详情 回复 发表于 2019-10-21 00:39
非常感谢您的代码:  详情 回复 发表于 2019-10-19 00:13
如果楼主动手能力强的话,可以WINSCP登陆路由器,将我给的脚本解压缩上传到路由器/etc/storage/目录下,设置权限755,在添加定时任务 这样就实现了带判断的每小时第55分钟检测/更新DDNS功能  详情 回复 发表于 2018-11-8 23:07
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-11-8 22:57 | 显示全部楼层
本帖最后由 renchen1994 于 2018-11-8 22:58 编辑
游课最理智 发表于 2017-11-9 14:46
meibu网站免费注册。。你可以注册一个测试也可以用我上面提到的名字密码做测试。。没关系随便用
cron命 ...

按照你的想法,你是想每一个小时更新一次每步的DDNS IP地址?你的公网IP变化的这么快的吗?
算了,多的不说,直接告诉你方法:
在路由界面“系统管理-服务-启用 Cron 守护程序(计划任务)”打开,然后点击该项下面的蓝色文字,插入以下代码
  1. 55 */1 * * * curl -s "http://main.meibu.com/ip/login.asp?name=testip.meibu.net&pwd=ipmac&hostname=testip.meibu.net"
复制代码

这个定时任务会每小时的第55分钟更新你的DDNS IP,我31楼贴的那个代码有判断功能,只有当IP发生变化时才更新DDNS,楼主自己考虑用那个吧
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-11-8 23:07 | 显示全部楼层
本帖最后由 renchen1994 于 2018-11-22 20:24 编辑
renchen1994 发表于 2018-11-8 22:38
按照楼主的需求,给你如下代码,你把它加入到“自定义设置-脚本-在 WAN 上行/下行启动后执行”脚本最后插入 ...

如果楼主动手能力强的话,可以WINSCP登陆路由器,将我给的脚本解压缩上传到路由器/etc/storage/目录下,设置权限755,在添加定时任务
  1. 55 */1 * * * /etc/storage/ddns.sh &
复制代码

这样就实现了带判断的每小时第55分钟检测/更新DDNS功能

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-19 00:13 来自手机 | 显示全部楼层
renchen1994 发表于 2018-11-8 22:38
按照楼主的需求,给你如下代码,你把它加入到“自定义设置-脚本-在 WAN 上行/下行启动后执行”脚本最后插入 ...

非常感谢您的代码:
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-21 00:39 | 显示全部楼层
renchen1994 发表于 2018-11-8 22:38
按照楼主的需求,给你如下代码,你把它加入到“自定义设置-脚本-在 WAN 上行/下行启动后执行”脚本最后插入 ...

感谢。可以正常运行,代码里有个小错误,我小小修正下。
ip=`$meibuddns_curl 2>&1 | awk -F ": " '{print $2}' | awk -F "\<" '{print $1}'
应为
ip=`$meibuddns_curl 2>&1 | awk -F ": " '{print $2}' | awk -F "\<" '{print $1}'`

点评

没想到这么久了,我的脚本还有效,基于官网教程老毛子(padavan)路由器通过计划任务更新IPV6动态域名地址,我重新更新了一版脚本,排除dns缓存导致更新失败的问题,注意脚本需要更名为XX.sh并上传到老毛子路由器的/et  详情 回复 发表于 2019-10-22 15:35
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-22 15:35 | 显示全部楼层
本帖最后由 renchen1994 于 2019-10-22 16:01 编辑
cnhhwy 发表于 2019-10-21 00:39
感谢。可以正常运行,代码里有个小错误,我小小修正下。
ip=`$meibuddns_curl 2>&1 | awk -F ": " '{pri ...

没想到这么久了,我的脚本还有效,基于官网教程老毛子(padavan)路由器通过计划任务更新IPV6动态域名地址,我重新更新了一版脚本,排除dns缓存导致更新失败的问题,注意脚本需要更名为XX.sh并上传到老毛子路由器的/etc/storage/目录下,给7777的权限,用法可参考上面官网教程链接
  1. #!/bin/sh

  2. #定义每步DDNS的域及密码,如域为test.noip.cn,第一行填test,第二行填密码,第三行填noip.cn
  3. meibuddns_name=XXXX
  4. meibuddns_pwd=XXXX
  5. meibuddns_domain=XXXX

  6. #获取当前文件目录
  7. dir=$(cd $(dirname $0); pwd)
  8. #ip.txt用来保存IP地址,如果ip地址没发生变化,则不进行地址更新,重复提交地址更新官方会封号。
  9. iptxt="$dir""/ip.txt"
  10. #获取老毛子路由器ip地址。
  11. ip=`curl -s 'http://www.meibu.com/ips.asp'`
  12. if [ "${ip:-none}" == "none" ] ; then
  13. echo "[dns] 获取ip错误!"
  14. logger "[dns] 获取ip错误!"
  15. exit 12
  16. fi

  17. if [ -f $iptxt ] ; then
  18. oldip=$(tail -n 1 $iptxt)
  19. else
  20. oldip="::"
  21. fi
  22. #与ip.txt中的ip地址对比,如果一致,则退出;如果不一致,则将新IP写入ip.txt文件,并提交动态域名跟新。
  23. if [ "$ip" == "$oldip" ] ; then
  24. echo "[dns] ip无变化!"
  25. logger "[dns] ip无变化!"
  26. exit 0
  27. fi
  28. #将变化的ip地址写入ip.txt。
  29. echo $ip > $iptxt
  30. #更新动态域名ip地址
  31. url="http://ipv4.meibu.com/ipv4.asp?name=$meibuddns_name.$meibuddns_domain&pwd=$meibuddns_pwd"

  32. re=`curl -s $url`

  33. logger "[dns] 更新动态域名成功!"
  34. echo "[dns] 更新动态域名成功!"
复制代码

点评

谢谢你的脚本!  发表于 2020-4-16 11:46
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 10:23

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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