dnspod.cn 动态域名客户端(仅用于网关路由器)

请注意:

  • 此客户端代码仅限于运行在直接连接在互联网的设备上(一般来说就是网关路由器)
  • 此客户端需要linux运行环境
  • 此客户端需要python语言解释器执行(一般来说,各种linux发行版均默认自带python解释器)
  • 使用此程序,需要掌握以下技能:shell基本操作, linux文本编辑器(vi/nano)基本操作

安装方法:

  1. 复制以下源代码并保存为dnspod.py
  2. 使用您自己的设置更改源代码中的变量(请注意代码中的注释)
  3. 将dnspod.py保存到linux服务器中/bin(使用winscp或者在vi/nano中粘贴)
  4. 执行以下命令:
chmod +x /bin/dnspod.py

5. 执行以下命令进行测试

/bin/dnspod.py

6. 执行以下命令检查程序输出

tail /var/log/dnspod.log

7. 请确认程序输出了 “IP address changed to xx.xx.xx.xx, dnspod DDNS updated” 即可

8. 执行以下命令打开linux中的计划任务描述文件

crontab -e

9. 在cron的任务文件描述中加入以下一行内容并保存,此后每隔10分钟将自动执行此程序一次

*/10 * * * * /bin/dnspod.py

10. 完成!

#!/user/bin/env python
#coding=utf-8

import urllib, urllib2, json
import socket, struct, fcntl
import sys, os, time

url = "https://dnsapi.cn/Record.Ddns"

# 使用你自己的设置更改以下内容

account = "[email protected]"  # 你在dnspod.cn注册的邮件地址
password = "password"   # 你在dnspod.cn注册密码
domain_id = "12345678"  # 你的域名id (如何获取请查看本文最下方)
sub_domain = "hostname" # 你要更新的主机头名,例如 hostname.mydomain.com
record_id = "12345678"  # 此主机头名对应的记录id (如何获取请查看本文最下方)
record_line = "默认"    # dnspod.cn中为此记录指定的线路
wan_ifname = "ppp0"     # 连接 Internet 的网卡设备名(对于拨号上网的路由器来说,一般为ppp0)

# 使用你自己的设置更改以上内容

prev_file = "/dev/shm/wan.prev"
log_file = "/var/log/dnspod.log"

def get_ipaddress(interface):
	s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
	return socket.inet_ntoa(fcntl.ioctl(
		s.fileno(),
		0x8915,
		struct.pack("256s", interface[:15])
		)[20:24]
	)

def print_log(text):
	log = open(log_file, "a")
	timestamp = time.strftime(‘%Y-%m-%d %H:%M:%S‘)
	log.write(timestamp + " | " + text + "\n")
	log.close()

values = {
	"login_email": account,
	"login_password": password,
	"domain_id": domain_id,
	"sub_domain": sub_domain,
	"record_id": record_id,
	"record_line": record_line,
	"format": "json"
}

changed = False
current_ip = get_ipaddress(wan_ifname)
prev_ip = ""

if not os.path.exists(prev_file):
	prev = open(prev_file, "a")
	prev.write(current_ip)
	prev.close()
	changed = True
else:
	prev = open(prev_file, "r")
	prev_ip = prev.readline().strip()
	prev.close()
	if prev_ip != current_ip: 
		prev = open(prev_file, "w")
		prev.write(current_ip)
		prev.close()
		changed = True

if changed:
	print_log("IP address changed to " + current_ip)
	data = urllib.urlencode(values)
	req = urllib2.Request(url, data)
	response = urllib2.urlopen(req)
	content = response.read()
	myinfo = json.loads(content)
	if myinfo["status"]["code"] == "1": print_log("dnspod DDNS updated")

# print_log("IP address not changed yet")
时间: 2024-08-05 08:10:30

dnspod.cn 动态域名客户端(仅用于网关路由器)的相关文章

花生壳动态域名详细试用方法

花生壳动态域名使用方法(详解) 1. 首先登录 花生壳网站  http://www.oray.com/,在 导航栏 中选择"花生壳",然后点击"花生壳下载",根据需要选择下载的版本,我用的是 "花生壳动态域名6.0正式版",下载的界面如下: < xmlnamespace prefix ="v" ns ="urn:schemas-microsoft-com:vml" /> < xmlname

dnspod动态域名使用感受

继花生壳不能用之后,3322也开始不太好用了,首先就是360把所有3322的域名全部判定为危险域名,甚至拦截程序对于3322url的api请求. 所以想把3322换成我们自己的独立域名,但是3322他们又是要收费的. 因此,特别想到DNSPOD,之前把域名是一直托管在他们那解析的,如果他们也支持动态域名那就是太棒了. 果然啊,只有想不到,没有做不到. 我大DNSPOD果然开放全部的API,并且支持官方出品工具支持动态域名的解析. 具体使用方法这里就不表了,实在是太简单了.提供下参考链接吧. ht

利用Mono.Cecil动态修改程序集来破解商业组件(仅用于研究学习)

原文:利用Mono.Cecil动态修改程序集来破解商业组件(仅用于研究学习) Mono.Cecil是一个强大的MSIL的注入工具,利用它可以实现动态创建程序集,也可以实现拦截器横向切入动态方法,甚至还可以修改已有的程序集,并且它支持多个运行时框架上例如:.net2.0/3.5/4.0,以及silverlight程序 官方地址:http://www.mono-project.com/Cecil 首先,我先假想有一个这样的商业组件,该组件满足了以下条件: 1. 该程序集的代码被混淆过了 2. 该程序

Ubuntu 下使用 CloudFlare 动态域名

需求 首先保证你有一个自有域名,然后登录到CloudFlare,添加你的域名.遵循指令操作,使用它给出的默认值就行了.你将让CloudFlare来托管你的域,所以你需要调整你的注册机构的设置.如果你想要使用子域名,请为它添加一条'A'记录.目前,任何IP地址都可以. DDclient是一个Perl客户端,用于更新动态DNS网络服务提供商帐号下的动态DNS条目.它最初是由保罗·巴利编写的,现在大多数是由维姆潘科在做.它能做的不仅仅是动态DNS,也可以通过几种不同的方式获取你的WAN口IP地址. C

教程:动手用自己电脑搭建一个网站 (nat123 花生壳 动态域名 个人电脑做服务器)

先ps一下..今晚试了N种方法,终于找到一个靠谱 免费 好用的方法,来改装自己电脑成为服务器,在外网也能通过域名访问了!!! 需要准备的东西: Tomcat:这个是web容器,其实有了这个就已经让电脑成为服务器了,在自己电脑上可以通过 localhost:8080/xxx 来访问自己电脑上的web应用了,而其他人也可以通过你的IP地址 xxx.xxx.xx.xx:8080 来访问你的web应用.具体的安装和基本使用方法在李刚的轻量级javaee一书中有很详细的说明. nat123:提供免费域名.

tomato路由器上配置花生壳DDNS动态域名

Google最近被封的很彻底,之前在Google SVN服务器上托管的代码不好访问了. 算是废物利用吧, 我把老笔记本跑的慢死的Win8卸了,装了Ubuntu,架了SVN服务器,把一些个人代码都放在上面管理.在家里和公司进行提交同步. 上海电信的网络是有公网IP的,我N年前还在山东淄博的时候注册的花生壳DDNS帐号竟然还能用,当时免费的4个二级域名也是OK的.于是就用花生壳搞定DDNS,用域名来访问SVN服务. 在工作笔记本上跑花生壳客户端还是麻烦,这个笔记本又不能一直开着,所以访问起来就有一些

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

1. 申请动态域名/安装no-ip客户端 https://blog.csdn.net/lee244868149/article/details/44095835 2. yum安装httpd 两种方法安装apache (1)yum install httpd (2)采用源码安装 https://www.cnblogs.com/feifeidxl/p/5556696.html 3. 配置httpd.conf vim /etc/httpd/conf/httpd-conf 具体内容参看之间的博客:htt

自建简单又实用的动态域名管理系统

个人动态域名管理系统.Personal-DDNS. 简单又实用的动态域名管理系统, 自建动态域名管理系统 使用 bind9 + php + mysql , 创建个人的动态域名系统. Use bind9 + php + mysql , create a personal ddns server, update by an URL. Only support "A","AAAA","TXT" recorder. 项目地址 https://github

使用EJS脚本实现花生壳动态域名更新服务(二)

此博客为9925.org的镜像,登录9925.org可以查看到最新博文. 原文出处:http://ily.so/AV3yQv 在<使用EJS脚本实现花生壳动态域名更新服务(一)>中,我们粗暴的把代码放在一起,然后执行.利用EJS支持的“#include”预编译指令我们可以以更加优美的方式组织代码. 步骤如下: 把BASE64编码部分的代码复制到一个新建的脚本. /** * UTF16和UTF8转换对照表 * U+00000000 – U+0000007F   0xxxxxxx * U+0000