`
zhengdl126
  • 浏览: 2511238 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

使用DNSPOD API实现域名动态解析

阅读更多

http://www.williamsang.com/archives/1557.html

 

 

DNSPOD是一家提供域名解析的服务商。基本功能免费,国内名气算是比较大的。

最近想在外网访问一个拨号上网的服务器。大家都知道拨号上网每次IP都有可能变动。所以需要实现动态域名解析,而DNSPOD提供了修改域名解析的接口,我使用提供的接口写了一个程序。再利用Linux自带的crontab定期检查IP,实现动态域名解析。
原理其实就是比较本机的广域网IP地址和DNSPOD上注册的IP地址是否一致,不一致则利用DNSPOD的API修改成为现在的IP地址。本文主要介绍如何使用此程序,本文将tk.williamsang.com解析到一个拨号上网电脑上。

源代码我已经放到github上,地址:
https://github.com/William-Sang/ddns

使用前提:

  • 你在DNSPOD上注册了域名,本文是 williamsang.com
  • 你想要映射的记录已经在DNSPOD上建好了,本文建的是 tk
  • 你的操作系统为Linux,安装好了PHP环境。
  • 你的家用路由器是断线自动连接的(不然连网都没有还搞什么。。。)

域名相关内容查看DNSPOD帮助,介绍的很详细,如下图。

DNSPOD helper

程序试运行

在Linux环境下,假设现在的目录为/data/www:

1
2
# git clone git@github.com:William-Sang/ddns.git
# cd ddns/

修改配置文件:改成你在DNSPOD的用户名密码,和你的域名、记录(可以当作子域名)。

1
# vim conf.php

示例如下:

1
2
3
4
5
6
7
//在此填写你的DNSPOD 登录email,和密码
define('LOGIN_EMAIL', 'william@williamsang.com');
define('LOGIN_PASSWORD', 'bugaosuni');
 
//再次填写你需要映射的域名,记录
define('DOMAIN','williamsang.com');
define('RECORD','tk');

此时程序地址为:/data/www/ddns/index.php
假设你的PHP程序安装位置为:/usr/local/server/php/bin/php
则尝试执行(如果不一样,这替换为你的实际执行环境):

1
# /usr/local/server/php/bin/php /data/www/ddns/index.php

下图为:服务器现在地址和DNSPOD注册地址一样的运行情况。

dns_different

下图为:服务器现在地址和DNSPOD注册地址不一样的运行情况。

dns_same

你可以通过在DNSPOD网站上修改解析、查看记录来验证程序。

注意:

  •   修改DNS解析记录需要一定生效时间,所以可能需要几分钟才会生效。

配置crontab

配置crontab,让Linux定时自动执行此程序
关于cron的使用请参看: Linux 定时重复执行任务 crontab 命令详解

DNSPOD的接口调用是有次数限制的,如果账号尝试登录错误次数在5分钟内超过30次则会被禁止登录一个小时。以下5分钟调用一次,你也可以1分钟调用一次也没问题哈。

1
2
3
4
# crontab -e
此时输入一下内容,每五分钟运行一次,也可以设置小一点。
5/* * * * * /usr/local/server/php/bin/php /data/www/ddns/index.php
# service crond restart

使用PING命令验证域名是否生效,PING命令返回该域名IP,或者你搭建配置好HTTP服务器,直接用域名访问测试效果:

ping

  • OKAY结束啦,总结来说就是使用crontab定期运行此PHP脚本。

 

 

分享到:
评论

相关推荐

    使用 DNSPOD API 实现域名动态解析

    使用 DNSPOD API 实现域名动态解析,在 dnspod 添加域名后并添加一个记录用来解析宽带的 IP 地址

    DNSPOD API 域名解析示例 v1.0

    DNSPOD API 域名解析示例本程序基于"李院长"的dns api修改而来php版dnspod api程序基本功能:1.支持域名解析。[泛解析一样支持]2.支持设置A 记录、CNAME、AAAA、MX3.支持修改域名解析4.支持删除域名解析测试帐号:...

    DNSPOD API 域名解析示例 v1.0.zip

    DNSPOD API 域名解析示例 本程序基于"李院长"的dns api修改而来 php版dnspod api程序 基本功能: 1.支持域名解析。[泛解析一样支持] 2.支持设置A 记录、CNAME、AAAA、MX 3.支持修改域名解析 4.支持删除域名...

    DNSPOD API **解析示例 v1.0.rar

    DNSPOD API **解析示例 本程序基于"李院长"的dns api修改而来 php版dnspod api程序 基本功能: 1.支持**解析。[泛解析一样支持] 2.支持设置A 记录、CNAME、AAAA、MX 3.支持修改**解析 4.支持删除**解析 测试帐号:...

    DynSpod-v2.0.2.0.zip

    使用 DNSPOD API 实现域名动态解析,在 dnspod 添加域名后并添加一个记录用来解析宽带的 IP 地址,windows版本。IPv4及IPv6集成一体。

    基于PHP的DNSPOD API 域名解析示例.zip

    基于PHP的DNSPOD API 域名解析示例.zip

    基于PHP的DNSPODAPI域名解析示例源码.zip

    基于PHP的DNSPODAPI域名解析示例源码.zip

    PHP实例开发源码—DNSPOD API 域名解析示例.zip

    PHP实例开发源码—DNSPOD API 域名解析示例.zip

    楹栋DNSpod域名解析系统 1.30.rar

    楹栋DNSpod域名解析系统可以通过DNSpod建立自己的域名解析平台,可向用户提供独立的控制面板。 楹栋DNSpod域名解析系统 1.30 更新日志:2016-05-17 与官方最新API对接,重新编译组件。 系统功能: 1 增加、...

    楹栋DNSpod域名解析系统

    楹栋DNSpod域名解析系统可以通过DNSpod建立自己的域名解析平台,可向用户提供独立的控制面板。 系统功能: 1 增加、修改、删除DNSpod用户中的域名 2 同步、同步全部DNSpod用户中的域名到本地 3 可以设置域名的注册...

    楹栋DNSpod域名解析系统 v1.30.zip

    楹栋DNSpod域名解析系统 更新日志: 修正日期:2016.5.17 与官方最新API对接,重新编译组件。 楹栋DNSpod域名解析系统简介 楹栋DNSpod域名解析系统可以通过DNSpod建立自己的域名解析平台,可向用户提供独立的...

    ipage:基于DNSPod API的域名解析管理系统

    ipage    基于 DNSPod API 的域名解析管理系统,可以分享二级域名给注册用户,前提是你有个还算有意思的顶级域名,比如 about.me etc.####要求一个待分享的顶级域名独立 IP 的 VPS一些 WEB 开发常识####部署部署...

    Python脚本实现DNSPod DNS动态解析域名

    DNSPod有提供修改的API,就用Python简单的实现了一下动态解析。这样,就不用安装花生壳了。 废话不说,看代码: #!/usr/bin/env python #-*- coding:utf-8 -*- import httplib, urllib, urllib2 import time import...

    楹栋DNSpod域名解析系统源代码

    楹栋DNSpod域名解析系统可以通过DNSpod建立自己的域名解析平台,可向用户提供独立的控制面板。 系统功能: 1 增加、修改、删除DNSpod用户中的域名 2 同步、同步全部DNSpod用户中的域名到本地 3 可以设置域名的注册...

    DNSPOD-ddns-ipv6-shell:利用dnspod域名服务商API制作的DDNS工具,在公网IPV6变化时把新的IPV6地址更新到域名解析上

    DNSPod-ddns利用dnspod域名服务商API制作的DDNS工具,在公网IPV6变化时把新的IPV6地址更新到域名解析上。开始使用mv ipv6.conf.example ipv6.conf修改配置文件ipv6.confdomain : 你的域名 example.comsubdomain : ...

    ArDNSPod:基于DNSPod用户API实现的纯Shell动态域名客户端

    基于DNSPod用户API实现的纯Shell动态域名客户端,适配网卡地址。 Usage (老鸟请略过) 首先要在dnspod网页上新建解析记录,然后获得api token。 复制dns.conf.example到同一目录下的dns.conf并根据你的配置修。 在 ...

    ddns24400:Arduino ESP8266动态DDNS-IPV6解析库文件

    Arduino ESP8266动态DDNS-IPV6解析库文件。支持每步科技AAAA解析和dnspod-AAAA解析及...相比较ddns24399多了一个阿里云的域名解析功能,获取RecordId的方法请使用阿里云在线API填写主域名后点击发起调用获取,地址:...

Global site tag (gtag.js) - Google Analytics