ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OpenWRT调用花生壳

2022-02-25 18:03:16  阅读:337  来源: 互联网

标签:tmp 调用 oray etc 花生壳 IP wget OpenWRT


转载:https://www.cnblogs.com/xdsnet/p/5196001.html

OpenWrt作为常见路由器系统,提供了较强的sh环境,这使得其可以很好的利用花生壳提供的网页版实现公网环境下的动态域名解析支持。

sh脚本(文件名:OpenWrtForOray)

#!/bin/sh -
# filename:OpenWrtForOray
# USER值为花生壳用户名
USER="nameid"
# PASS值为花生壳对应登录密码
PASS="password"
# DOMAIN值为该用户下可使用的域名
DOMAIN="hostname.vicp.cc"
# IPPORT值是在OpenWrt上配置的可获取公网IP地址的网口,家用一般是 pppoe-wan
IPPORT="pppoe-wan"

# 下面的代码获取到实际的公网 IP 地址
IP=$(ifconfig ${IPPORT} |awk -F "[: ]+" '/inet addr/{print $4}')

# 下面生成完整的花生壳网页版调用URL地址
URL="http://${USER}:${PASS}@ddns.oray.com:80/ph/update?hostname=${DOMAIN}&myip=${IP}"

# 下面的代码检测是否发生IP地址变化,如果没有变化就不产生实际调用
if [ -f /tmp/oray ];then
        OLD_IP=$(cat /tmp/oray | awk '{print $2}')
        if [ "${OLD_IP}" = "${IP}" ];then
                exit
        fi
fi
wget -q -O /tmp/oray -q ${URL}

脚本的放置与处理

把脚本放置到 /etc/hotplug.d/iface/ 目录下,执行

chmod a+x /etc/hotplug.d/iface/OpenWrtForOray

再编辑 /etc/crontabs/root文档,添加重复执行的命令,比如可以执行下面的命令:

echo */1 * * * * /etc/hotplug.d/iface/OpenWrtForOray start >> /etc/crontabs/root

再重新启动路由器的定时任务服务

/etc/init.d/cron restart

正确的话可通过命令

ps | grep cron

查看cron是否启动成功,一般显示为:

2999 root 1508 S /usr/sbin/crond -c /etc/crontabs -l 6
3000 root 1495 S grep cront

多个域名的处理

因为一个花生壳用户可以管理多个域名,如果想在这个路由器上绑定多个域名,有两个方法

  1. 按前述步骤制作多份脚本,命名为不同的名字,并添加到循环执行中去

  2. 修改脚本,主要修改涉及 DOMAIN 值的地方,比如修改为 DOMAIN1 DOMAIN2 ... DOMAINN ,对应产生 URL1 URL2 ... URLN,然后后面 wget语句处改为多个:

wget -q -O /tmp/oray -q ${URL1}
wget -q -O /tmp/oray -q ${URL2}
...
wget -q -O /tmp/oray -q ${URLN}

即可。

标签:tmp,调用,oray,etc,花生壳,IP,wget,OpenWRT
来源: https://www.cnblogs.com/sudochen/p/15937182.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有