Sep
3
使用dnspod的ddns api的bash脚本
#!/bin/bash
API=https://dnsapi.cn/Record.Ddns
IP_FILE=/tmp/dnspod_ip
function get_old_ip()
{
ip=
if [ -e "$IP_FILE" ]; then
ip=`cat $IP_FILE`
fi
echo $ip
}
function save_ip()
{
echo -n $1 > $IP_FILE
}
function get_new_ip()
{
echo `nc ns1.dnspod.net 6666`
}
email=帐号邮箱
password=帐号密码 #dnspod就不能搞成个secret_key么!明文密码让人很不舒服啊。
domain_id=XXXXX #使用Domain.List API获取
record_id=YYYYY #使用Record.List API获取
sub_domain="zzz" #DDNS的二级域名
new_ip=`get_new_ip`
old_ip=`get_old_ip`
if [ "$new_ip" != "$old_ip" ];
then
curl $API -d "format=json&login_email=$email&login_password=$password&domain_id=$domain_id&record_id=$record_id&sub_domain=$sub_domain&record_line=默认"
save_ip $new_ip
fi
API=https://dnsapi.cn/Record.Ddns
IP_FILE=/tmp/dnspod_ip
function get_old_ip()
{
ip=
if [ -e "$IP_FILE" ]; then
ip=`cat $IP_FILE`
fi
echo $ip
}
function save_ip()
{
echo -n $1 > $IP_FILE
}
function get_new_ip()
{
echo `nc ns1.dnspod.net 6666`
}
email=帐号邮箱
password=帐号密码 #dnspod就不能搞成个secret_key么!明文密码让人很不舒服啊。
domain_id=XXXXX #使用Domain.List API获取
record_id=YYYYY #使用Record.List API获取
sub_domain="zzz" #DDNS的二级域名
new_ip=`get_new_ip`
old_ip=`get_old_ip`
if [ "$new_ip" != "$old_ip" ];
then
curl $API -d "format=json&login_email=$email&login_password=$password&domain_id=$domain_id&record_id=$record_id&sub_domain=$sub_domain&record_line=默认"
save_ip $new_ip
fi
然后加入crontab,每隔15分钟跑一次进行更新
*/15 * * * * ~/bin/dnspod.sh
欢迎扫码关注:
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
snoopy
2012-9-3 09:24
去看了下 dnspod.cn 的动态域名说明, 确定是跟花生壳干的一样的事了. 但是在他家的 API 规范 (https://www.dnspod.cn/client/user_api_doc.pdf) 里, 关于滥用的 1.b 这条就说了如果 IP 没变还大量提交貌似算滥用?
felix021 回复于 2012-9-3 09:25
15分钟提交一次 应该不算大量提交吧。。不过这个可以加个文件保存下上次的IP嗯。
snoopy
2012-9-3 09:16
这货拿来干啥? 类似花生壳一样的作用? 上报自己的动态 IP 地址以便域名一直解析到正确的 IP 上?另外, dnspod 如果发现这么频繁的提交请求不会有啥限制么? 虽然大部分时间你提交的 IP 都是一样的
分页: 1/1 1