yum install jq -y
-去获取API令牌
https://www.dnspod.cn/console/user/security
-创建后就获得API的ID和Token
name: dnspod
ID: 134
Token:6b5976c68aba5b14a0558b77c17c393
信息中的 ID 和 Token,需要用这两个字段来组合成一个完整的 Token,组合方式为:"ID,Token"(用英文半角逗号分割),比如 ID 为:134,ToKen为:6b5976c68aba5b14a0558b77c17c393。即完整的 Token 为:134,6b5976c68aba5b14a0558b77c17c393 。得到完整的 Token 之后.
---获取域名列表
curl -X POST https://dnsapi.cn/Domain.List -d 'login_token=298,fa576b11a14e7df8257cac2ca983&format=json'
curl -X POST https://dnsapi.cn/Domain.List.Filter -d 'type=mine&login_token=298,fa576b11a14e7df8257cac2ca9830&format=json&status[]=enable&status[]=pause'
-获取对应:domain_id
---用于获取解析记录列表
curl -X POST https://dnsapi.cn/Record.List -d 'login_token=298,fa576b11a14e7df8257cac2ca983&format=json&domain_id=6993775&sub_domain=qbt&record_type=A&offset=0&length=3'
-offset是否必选:否Integer记录开始的偏移,第一条记录为 0,依次类推(仅当指定 length 参数时才生效)。
-length是否必选:否Integer共要获取的记录数量的最大值,比如最多获取20条,则为20,最大3000。
-获取:record_id:1082964184
---用于修改解析记录
curl -X POST https://dnsapi.cn/Record.Modify -d 'login_token=298,fa576b11a14e7df8257cac2ca983&format=json&domain_id=6993775&record_id=108296418&sub_domain=qbt&value=3.2.2.2&record_type=A&record_line_id=10%3D0'
-record_line_id 是否必选:否String线路的ID,通过API记录线路获得,英文字符串,比如:‘10=1’。record_line 和 record_line_id 二者传其一即可,系统优先取 record_line_id。
-sub_domain: 二级域名
curl -X POST https://dnsapi.cn/Batch.Record.Modify -d "login_token=${LOGIN_TOKEN}&format=json&record_id=${RECORD_ID}&change=record_type&change_to=A&value=${myip}"
curl -X POST https://dnsapi.cn/Record.Modify -d 'login_token=${LOGIN_TOKEN}&format=json&domain_id=${DOMAIN_ID}&record_id=${RECORD_ID}&sub_domain=qbt&value=3.2.2.2&record_type=A&record_line_id=10%3D0'
---dns.sh
#!/bin/bash
time=$(date "+%Y-%m-%d %H:%M:%S")
oldIPFile=./oldip.txt
logFile=./updatelog.txt
LOGIN_TOKEN=298,fa576b11a14e7df8257cac2ca983
DOMAIN_ID=699
RECORD_ID=1082964
SUB_DOMAIN=qbt
function updateIp() {
#curl -X POST https://dnsapi.cn/Record.Modify -d "login_token=298,fa576b11a14e7df8257cac2ca983&format=json&domain_id=699377&record_id=10829641&sub_domain=qbt&value=3.2.2.2&record_type=A&record_line_id=10%3D0&value=117.30.75.7" | jq .status.code
result=$(curl -X POST https://dnsapi.cn/Record.Modify -d 'login_token=${LOGIN_TOKEN}&format=json&domain_id=${DOMAIN_ID}&record_id=${RECORD_ID}&sub_domain=${SUB_DOMAIN}&value=3.2.2.2&record_type=A&record_line_id=10%3D0&value=${myip}" | jq .status.code)
code="\"1\""
if [ "$result" = "$code" ];
then
echo "${time} 更新成功 ${myip}" >> $logFile
echo "$myip" > $oldIPFile
else
echo "更新失败,代码: $result" >> $logFile
exit 0
fi
}
myip=$(curl http://pv.sohu.com/cityjson 2>> /dev/null | awk -F '"' '{print $4}')
oldip=$(cat "$oldIPFile")
if [ "$myip" = "$oldip" ]; then
exit 0
else
updateIp
fi
---定时任务: 每分钟执行一次
* 1 * * * /bin/sh /opt/dns.sh
赞(0)
更多分享
知识的整理归类,离不开每一个热心网友的辛勤努力与默默付出!
打赏,不在于金钱的多与少,而在于,您那份对Ta付出的肯定与认可!
上篇:
Python + Tornado 框架
下篇:
软件移交确认单和移交计划书