找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 1276|回复: 1

Ddnspod插件1.7适用于【koolshare merlin armv7l 384/386】固件平台

[复制链接]
发表于 2023-5-17 17:14 | 显示全部楼层 |阅读模式
【koolshare merlin armv7l 384/386】固件平台在线安装的是1.5的版本,2年没更新了,看到【koolshare 梅林改/官改 hnd/axhnd/axhnd.675x】固件平台已经更新到1.7了,于是胡乱瞎整,把【koolshare 梅林改/官改 hnd/axhnd/axhnd.675x】固件平台的1.7包修改成【koolshare merlin armv7l 384/386】固件平台的离线安装包,自己已经测试安装上了。

顺便问下大家怎么修改Ddnspod在双WAN线路中指定出口为第2个WAN口IP?
以下是离线包中ddnspod_config.sh的代码:
  1. #!/bin/sh
  2. source /koolshare/scripts/base.sh
  3. eval `dbus export ddnspod`
  4. alias echo_date='echo 【$(TZ=UTC-8 date -R +%Y年%m月%d日\ %X)】:'
  5. # ====================================函数定义====================================

  6. # 获得公网IP地址
  7. # 参数:IP协议类型
  8. arIPAddress() {
  9.     wget --quiet --output-document=- "v${1}.ipip.net"
  10. }

  11. # 读取接口数据
  12. # 参数: 接口类型 待提交数据
  13. arApiPost() {
  14.     local site recordLine
  15.     if [ $ddnspod_site -eq 1 ]; then
  16.         site="dnsapi.cn"
  17.         recordLine="%E9%BB%98%E8%AE%A4"
  18.     else
  19.         site="api.dnspod.com"
  20.         recordLine="default"
  21.     fi
  22.     local agent="AnripDdns/5.07(mail@anrip.com)"
  23.     local inter="https://${site}/${1:?'Info.Version'}"
  24.     local param="login_token=$ddnspod_config_id,$ddnspod_config_token&format=json&${2}&record_line=${recordLine}"
  25.     wget --quiet --no-check-certificate --output-document=- --user-agent=$agent --post-data "$param" "$inter"
  26. }

  27. # 更新域名记录信息
  28. # 参数: IP协议类型 主域名 子域名 记录ID 当前IP
  29. arDdnsUpdate() {
  30.     # 更新记录IP
  31.     arApiPost "Record.Modify" "record_type=${1}&domain=${2}&sub_domain=${3}&record_id=${4}&value=${5}"
  32. }

  33. # 获取域名记录列表
  34. # 参数: IP协议类型 主域名 子域名
  35. arDdnsList() {
  36.     # 获得记录列表
  37.     arApiPost "Record.List" "record_type=${1}&domain=${2}&sub_domain=${3}"
  38. }

  39. # 检查DNS
  40. # 参数: IP协议类型 主域名 子域名
  41. arDdnsCheck() {
  42.     local recordRS recordID recordIP recordCD currentIP errMsg
  43.     local recordType
  44.     if [ $1 -eq 6 ]; then
  45.         recordType="AAAA"
  46.     else
  47.         recordType="A"
  48.     fi

  49.     currentIP=$(arIPAddress $1)
  50.     recordRS=$(arDdnsList $recordType $2 $3)
  51.     recordCD=$(echo $recordRS | sed 's/.*{"code":"\([0-9]*\)".*/\1/')
  52.     if [ "$recordCD" == "1" ]; then
  53.         recordID=$(echo $recordRS | sed 's/.*{"id":"\([0-9]*\)".*"type":"'${recordType}'".*/\1/')
  54.         recordIP=$(echo $recordRS | sed 's/.*{"id":"'${recordID}'".*"value":"\([a-z0-9:.]*\)".*/\1/')
  55.     else
  56.         errMsg=$(echo $recordRS | sed 's/.*,"message":"\([^"]*\)".*/\1/')
  57.         dbus set ddnspod_run_status_v${1}="WAN IPV${1}:${currentIP} 更新失败,原因:${errMsg}"
  58.         echo $errMsg
  59.         return 1
  60.     fi

  61.     if [ "$currentIP" != "$recordIP" ]; then
  62.         dbus set ddnspod_run_status_v${1}="更新中。。。"

  63.         # 更新记录IP
  64.         recordRS=$(arDdnsUpdate $recordType $2 $3 $recordID $currentIP)
  65.         recordCD=$(echo $recordRS | sed 's/.*{"code":"\([0-9]*\)".*/\1/')

  66.         if [ "$recordCD" == "1" ]; then
  67.             dbus set ddnspod_run_status_v${1}=`echo_date` "更新成功,WAN IPV${1}:${currentIP}"
  68.         else
  69.             errMsg=$(echo $recordRS | sed 's/.*,"message":"\([^"]*\)".*/\1/')
  70.             dbus set ddnspod_run_status_v${1}="WAN IPV${1}:${currentIP} 更新失败,原因:${errMsg}"
  71.             echo $errMsg
  72.             return 1
  73.         fi
  74.     else
  75.         dbus set ddnspod_run_status_v${1}="`echo_date` 无需更新,WAN IPV${1}:${currentIP}"
  76.     fi
  77.     return 0
  78. }

  79. parseDomain() {
  80.     mainDomain=`echo ${ddnspod_config_main_domain}`
  81.     subDomain=`echo ${ddnspod_config_sub_domain}`
  82. }

  83. add_ddnspod_cru(){
  84.     sed -i '/ddnspod/d' /var/spool/cron/crontabs/* >/dev/null 2>&1
  85.     cru a ddnspod "0 */$ddnspod_refresh_time * * * /koolshare/scripts/ddnspod_config.sh update"
  86. }

  87. stop_ddnspod(){
  88.     sed -i '/ddnspod/d' /var/spool/cron/crontabs/* >/dev/null 2>&1
  89. }

  90. # ====================================used by init or cru====================================
  91. case $1 in
  92. start)
  93.     #此处为开机自启动设计
  94.     if [ "$ddnspod_enable" == "1" ];then
  95.         logger "[软件中心]: 启动ddnspod!"
  96.         add_ddnspod_cru
  97.         parseDomain
  98.         arDdnsCheck 4 $mainDomain $subDomain
  99.         if [ "$ddnspod_ipv6_enable" == "1" ];then
  100.             arDdnsCheck 6 $mainDomain $subDomain
  101.         fi
  102.     else
  103.         logger "[软件中心]: ddnspod未设置开机启动,跳过!"
  104.     fi
  105.     ;;
  106. stop | kill )
  107.     #此处卸载插件时关闭插件设计
  108.     stop_ddnspod
  109.     ;;
  110. update)
  111.     #此处为定时脚本设计
  112.     parseDomain
  113.     arDdnsCheck 4 $mainDomain $subDomain
  114.     if [ "$ddnspod_ipv6_enable" == "1" ];then
  115.         arDdnsCheck 6 $mainDomain $subDomain
  116.     fi
  117.     ;;
  118. esac
  119. # ====================================submit by web====================================
  120. case $2 in
  121. 1)
  122.     #此处为web提交动设计
  123.     if [ "$ddnspod_enable" == "1" ];then
  124.         [ ! -L "/koolshare/init.d/S99ddnspod.sh" ] && ln -sf /koolshare/scripts/ddnspod_config.sh /koolshare/init.d/S99ddnspod.sh
  125.         parseDomain
  126.         add_ddnspod_cru
  127.         arDdnsCheck 4 $mainDomain $subDomain
  128.         if [ "$ddnspod_ipv6_enable" == "1" ];then
  129.             arDdnsCheck 6 $mainDomain $subDomain
  130.         fi
  131.         http_response "$1"
  132.     else
  133.         stop_ddnspod
  134.         http_response "$1"
  135.     fi
  136.     ;;
  137. esac
复制代码


本帖子中包含更多资源

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

×
发表于 2023-5-18 08:57 | 显示全部楼层
我也是双WAN 不知道能不能使用
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2024-6-20 16:57

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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