因为家里使用ADSL动态IP上网,有时在外面需要使用家里资源,原本使用的是TP-LINK自带的花生壳解析,用过之后发现很不稳定。因为自己注册了域名也已使用了DNSPOD解析。

1.新建脚本文件

vim ddns.sh

文件内容如下:

#!/bin/sh# 全局变量表
arPass=arMail=""# 获得外网地址
arIpAdress() {local inter="http://members.3322.org/dyndns/getip"wget --quiet --no-check-certificate --output-document=- $inter
}# 查询域名地址
# 参数: 待查询域名
arNslookup() {local dnsvr="114.114.114.114"nslookup ${1} $dnsvr | tr -d '\n[:blank:]' | awk -F':' '{print $6}'
}# 读取接口数据
# 参数: 接口类型 待提交数据
arApiPost() {local agent="Ddns/3.08"local inter="https://dnsapi.cn/${1:?'Info.Version'}"local param="login_token=${arID},${arToken}&format=json&${2}"wget --quiet --no-check-certificate --output-document=- --user-agent=$agent --post-data $param $inter
}# 更新记录信息
# 参数: 主域名 子域名
arDdnsUpdate() {local domainID recordID recordRS recordCD# 获得域名IDdomainID=$(arApiPost "Domain.Info" "domain=${1}")domainID=$(echo $domainID | sed 's/.\+{"id":"\([0-9]\+\)".\+/\1/')# 获得记录IDrecordID=$(arApiPost "Record.List" "domain_id=${domainID}&sub_domain=${2}")recordID=$(echo $recordID | sed 's/.\+\[{"id":"\([0-9]\+\)".\+/\1/')# 更新记录IPrecordRS=$(arApiPost "Record.Ddns" "domain_id=${domainID}&record_id=${recordID}&sub_domain=${2}&record_line=默认")recordCD=$(echo $recordRS | sed 's/.\+{"code":"\([0-9]\+\)".\+/\1/')# 输出记录IPif [ "$recordCD" == "1" ]; thenecho $recordRS | sed 's/.\+,"value":"\([0-9\.]\+\)".\+/\1/'return 1fi# 输出错误信息echo $recordRS | sed 's/.\+,"message":"\([^"]\+\)".\+/\1/'
}
# 动态检查更新
# 参数: 主域名 子域名
arDdnsCheck() {local postRSlocal hostIP=$(arIpAdress)local lastIP=$(arNslookup "${2}.${1}")echo "hostIP: ${hostIP}"echo "lastIP: ${lastIP}"if [ "$lastIP" != "$hostIP" ]; thenpostRS=$(arDdnsUpdate $1 $2)echo "postRS: ${postRS}"if [ $? -ne 1 ]; thenreturn 0fifireturn 1
}#################################################### 设置用户参数
arID="89322"
arToken="3222w2e3213e123421421424234"
#填写账户的API token# 检查更新域名
arDdnsCheck "anrip.com" "lab"

ps:以上代码来自http://www.anrip.com/post/872

我们只需要将上面的

# 设置用户参数

arID="user@anrip.com"     //DNSPOD的API ID

arToken="anrip.net"                //DNSPOD的API Token

# 检查更新域名

arDdnsCheck"anrip.com"  "lab"     //需要更新的域名为anrip.com,主机为lab,就是lab.anrip.com

arDdnsCheck"anrip.net"  "lab"      //更新lab.anrip.net

修改成自己的信息即可

3.增加执行权限

chmod +x /root/ddns.sh

4.加入任务计划(5分钟执行一次)

echo "*/5  * * * * root /root/ddns.sh" >> /etc/crontab

计划任务执行情况可以查看/var/log/cron

说明:

如果在执行后发现

[root@localhost ~]# ./ddns.sh
./ddns.sh: line 24: nslookup: command not found
hostIP: 114.234.77.222
lastIP:
postRS: 114.234.77.222

如果你使用的是CentOS则执行

yum -y install bind-utils

或者是ubuntu的话

sudo apt-get install dnsutils

转载于:https://blog.51cto.com/fengwan/1404534

CentOS通过DNSpod实现动态域名相关推荐

  1. 让我们用 Node.js 写自己的 DDNS 动态域名程序

    原文链接:http://xcoder.in/2014/09/20/lets-build-ourselves-ddns/ 起因 一开始我在移动的宽带中.那个时候虽然还不是完全的局域网,但是电信网络访问不 ...

  2. dnspod 动态域名的使用。openwrt使用dnspod动态域名解析。

    这里主要说的是linux shell下的使用. 先看接口说明: 接口地址: https://dnsapi.cn/Record.Ddns HTTP请求方式: POST 请求参数: 公共参数 domain ...

  3. RouterOS(ros)软路由实现DDNS动态域名功能(DNSPOD)

    DDNS(Dynamic Domain Name Server,动态域名服务)是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地 ...

  4. dnspod每步nat123及3322动态域名同类端口映射域名解析软件对比

    首先说明下这三个名词:端口映射.域名解析.动态域名解析. 端口映射 80端口映射或自定义端口映射.可以解决80端口被屏蔽,可以在内网使用直接发布网站应用,可以在内网使用实现外网访问内网应用. 域名解析 ...

  5. dnspod每步nat123及3322动态域名同类网络辅助软件对比

    直接正题,就使用体会对比域名解析/动态域名/动态域名解析/端口映射相关免费软件或平台. dnspod dnspod域名解析.不需要转入域名.URL隐性转发另收费. dnspod动态域名解析.不需要转入 ...

  6. 每步科技动态域名怎么用

    有了动态域名,你可以拥有自己的web服务器.ftp服务器.Email 服务器.而且还完全掌握控制自己的服务器,而不必担心由于服务器托管造成关键数据的不安全,或是极大地提高网络爱好者的特长兴趣. 解析动 ...

  7. Linux下最简单的动态域名用法

    Linux下最简单的动态域名用法 估计做IT的哥们象我这样ADSL包月的应该很多,我一般家里有一部电脑是24小时开机的,它上面跑着我的各种应用,也相当于我的一个网络硬盘.为了方便自己能从远程访问,我们 ...

  8. rhel7+apache+c cgi+动态域名实现web访问

    1. 申请动态域名/安装no-ip客户端 https://blog.csdn.net/lee244868149/article/details/44095835 2. yum安装httpd 两种方法安 ...

  9. Serv-U组建个人FTP服务器, ——完全图解教程:FTP架设、端口映射、动态域名申请...

    serv-u组建个人ftp服务器, --完全图解教程:ftp架设.端口映射.动态域名申请(一) 为了支持"共享小组事务"的胜利开设,我花了两天时间,参考网上众老鸟文章之长,由我这小 ...

最新文章

  1. Exchange 2010 CAS安装之一
  2. python语言1010的八进制_python打印十六进制
  3. 邪恶的Java帝国是怎么欺负小函数的?
  4. python疑问5:位置参数,默认参数,可变参数,关键字参数,命名关键字参数区别...
  5. 李迟2021年4月知识总结
  6. jdbc 连接oracle 数据库格式
  7. 2.ansible中常用模块
  8. beyond 注册表删除
  9. Win7/10快捷方式恢复小箭头
  10. excel 第5讲:分类汇总与数据有效性
  11. 大数据查询语句SQL
  12. 产品标题什么时候进行优化,提高权重,标题优化的技巧方法
  13. OnTheHub 免费取得Offfice/Windows 正版序号,学生/教师限定
  14. 记一次抗DDOS演练
  15. 用Python人工智能识别图片-识别车牌号
  16. B站马士兵python入门基础版详细笔记(6)
  17. 图像算法工程师学习内容
  18. 整车OTA被“双规”
  19. matlab 逻辑回归实现,逻辑回归原理介绍及Matlab实现
  20. Objective-C 内存管理之dealloc方法中变量释放处理

热门文章

  1. [转帖]Runtime, Engine, VM 的区别是什么?
  2. PTA 1067 Sort with Swap(0, i) (25 分)(思维)
  3. 回过头来看对象的四种状态强软弱虚引用的理解
  4. C#语法基础之第三节
  5. 2.select_基础运用
  6. raid5坏了一块盘怎么办_服务器阵列信息丢失,数据怎么办?先不要慌,也许很快就能恢复...
  7. MIT_18.03_微分方程_Convolution_卷积_Notes
  8. oracle 如何边看表中字段信息_【Oracle移行到Sqlserver完美解决案】④sqluldr2+bulk 32H=3H...
  9. 【数理知识】《数值分析》李庆扬老师-目录
  10. 【控制】《多智能体系统一致性与复杂网络同步控制》郭凌老师-第6章-Lurie 型动态网络的簇同步