腾讯qcloud域名解析api

发布时间:2020-11-01 23:23:04 阅读:1350次

由于特殊原因,购买一台阿里云的按流量付费的vps

比如早9点到晚9点使用,其余时间关机不收费

写了脚本每次开机会自动邮件告诉我服务器的ip,省去了打开阿里云后台看ip的麻烦

但是每次还要我手工绑定ip

因为我的域名是在腾讯云上购买的,所以想到有没有办法域名自动解析到指定的ip地址,于是百度打开相关的api

以下脚本是基于python3的,推荐使用centos8,默认安装python3

[root@iZ6weck4rpeui7m2kjuq9bZ ~]# cat parsedomain.py
import base64
import hashlib
import hmac
import json
import random
from datetime import datetime
from urllib.parse import urlencode
from urllib.request import urlopen
from json import load
my_ip = load(urlopen('http://httpbin.org/ip'))['origin']
host = 'cns.api.qcloud.com/v2/index.php'
secret_id = '你自己的secret_id'
secret_key = '你自己的secret_key'
def request(action, region=None, dict_arg=None, kw_arg):
params = dict(dict_arg) if dict_arg is not None else {}
params.update(kw_arg)
params['Action'] = action
if region is not None:
params['Region'] = region
params['Timestamp'] = int(datetime.timestamp(datetime.now()))
params['Nonce'] = random.randint(1, 2 16 - 1)
params['SecretId'] = secret_id
params['SignatureMethod'] = 'HmacSHA256'
params = {str(k): str(v) for k, v in params.items()}
text = 'GET' + host + '?' + '&'.join(k + '=' + v for k, v in sorted(params.items()))
signature = hmac.new(secret_key.encode(), text.encode(), hashlib.sha256).digest()
params['Signature'] = base64.b64encode(signature).decode()
url = 'https://' + host + '?' + urlencode(sorted(params.items()))
contents = json.loads(urlopen(url).read().decode('unicode-escape'))
if contents['code'] != 0:
raise Exception(contents['message'])
return contents['data']
records = request('RecordList', domain="你自己的主域名不带www.")['records']
for record in records:
if record['name'] == '子域名名称不包含主域名':
if record['value'] != my_ip:
request('RecordModify',
domain="你自己的主域名不带www.",
recordId=record['id'],
subDomain=record['name'],
recordType=record['type'],
recordLine=record['line'],
value=my_ip,
ttl=record['ttl'],
mx=record['mx'])

申明以上脚本大部分参考https://i-m.dev/posts/20190223-214629.html

如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询

转载请注明:腾讯qcloud域名解析api 出自老鄢博客 | 欢迎分享