改写updateDns.sh脚本代码

作者:hzl88688 | 更新时间:2016-03-06 | 浏览量:1885

#!/bin/ash
shPath=$(cd `dirname $0`; pwd)
ip_regex="[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"
myip=$(echo $( wget -O -  http://ddns.nat123.com 2>/dev/null) | grep -o "$ip_regex")
myOldIp=$(cat ${shPath}/oldIp.txt)
if [ $3 ]
then
param3=$3
else
param3=80
fi
if [ ${myip} = ${myOldIp} ]
then
exit
else
wget -o ${shPath}/status.txt http://www.bigiot.net/Dns/updateDns?id=$1\&ip=${myip}\&pw=$2\&pt=${param3}
status=$(cat ${shPath}/status.txt)
echo $myip > ${shPath}/oldIp.txt
echo ${status}
fi


评论:共10条

贝壳物联 评论于:2016-03-06 12:04:41
不错,非常感谢!
获取IP的地址变了,还有原来用curl,现在用wget,能否介绍下这样改的亮点?
hzl88688 评论于:2016-03-06 12:20:07
不用curl是有很多系统不自带curl插件,获取地址用了IP地址结构,更简洁!
sxmwhl 回复于:2016-03-06 12:28:37
回复 @hzl88688:嗯,我可以把你的版本传到github吗?另外,
if [ ${myip} = ${myOldIp} ]

应为:
if [ ${myip} == ${myOldIp} ]

我原来的
if [ ${myip} != ${myOldIp} ]

也错了,因该是
if [ ${myip} ~= ${myOldIp} ]
hzl88688 回复于:2016-03-06 15:36:00
回复 @sxmwhl:可以上传代码!
hzl88688 评论于:2016-03-06 12:37:02
没有错,我改过了,如相等则退出
sxmwhl 回复于:2016-03-06 13:07:19
回复 @hzl88688:我搞错,有点懵,原来的都没有错。
当成lua脚本了-_-!!!!!!
weifuqiao1989 评论于:2016-04-10 12:51:37
wget -o ${shPath}/status.txt http://www.bigiot.net/Dns/updateDns?id=$1\&pw=$2\&ip=${myip}\&pt=${param3}
这句话会在/root 目录保存名为 updateDns?id=$1\&pw=$2\&ip=${myip}\&pt=${param3} 的一个文件
z494627 评论于:2016-04-29 21:50:08
我写了lua代码实现,贡献给大家:

local http = require("socket.http") --http
------------此处需修改-------------
DNSID="1" --DNS网关ID
DNSPWD="123456787" --DNS网关密码
DNSPort="80" --DNS网关端口

while true do
if ((os.time() - lastUpdateTime) > 20) then
local address=luci.util.ubus("network.interface.wan","status") or {}
myipv4=address["ipv4-address"][1]["address"]
if(myipv4 ~= myOldIp) then
local htpres=http.request("http://www.bigiot.net/Dns/updateDns?id="..DNSID.."\&ip="..myipv4.."\&pw="..DNSPWD.."\&pt="..DNSPort)
print(htpres)
myOldIp=myipv4
end
end

a386554965 评论于:2018-06-17 09:28:52
学习一下
991766617 评论于:2018-12-03 13:05:08
学习一下
返回顶部