腾讯云,ddns方案
哎呀馬
2021年10月26日 14:48

环境:注册腾讯账户  域名一个 python3

注册账户:https://cloud.tencent.com/

购买域名:https://buy.cloud.tencent.com/domain?from=console

python3:环境搭建省略

注意:

  1. 通过该 https://test-ipv6.com/ 查看自己是否有公网ipv6 ,如果没有可以手机开热点进行测试

  2. 不想看过程部分的可直接跳到完整代码部分最终代码需要填写四个参数"SecretId&#​34;, "SecretKey&#​34;,"Domain&#​34;,"RecordId&#​34;

  3. 环境,python3环境,自己的系统环境混乱的,可自行百度解决,负责代码执行可能报错

  4. 由于局部地区的公网ipv6被运营商限制,即使获得公网ipv6也不能做相应的服务。(限制地区:笔者目前知道的有上海市,如果还有别的地方,欢迎补充。)

  5. 代码执行之后,大概需要10分钟的时间才能生效。

  6. ipv6 一般本机会获取两个地址,快捷键win+r 输入cmd打开终端 输入ifconfig 会有两个IPv6地址,上面一个是有时间限制三天或七天自动更换,下面一个是每次开机关机会更换一次。ipv6一般2409开头。


1代码获取

(直达链接,直接跳过1)https://console.cloud.tencent.com/api/explorer?Product=dnspod&Version=2021-03-23&Action=ModifyRecord&SignVersion=

2参数填写

域名:https://console.cloud.tencent.com/cns

RecordID

可以创建一个python文件,用编辑器 或者pycharm

pip安装 tencentcloud

pip install --upgrade tencentcloud-sdk-python   (注意本地环境,是否pip3,pip命令无效,使用pip3安装)

代码块
Python
自动换行
复制代码
import json
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.dnspod.v20210323 import dnspod_client, models
try:
    cred = credential.Credential("SecretId", "SecretKey")
    httpProfile = HttpProfile()
    httpProfile.endpoint = "dnspod.tencentcloudapi.com"

    clientProfile = ClientProfile()
    clientProfile.httpProfile = httpProfile
    client = dnspod_client.DnspodClient(cred, "", clientProfile)

    req = models.ModifyRecordRequest()
    params = {
        "Domain": ,
        "RecordType": "AAAA",
        "RecordLine": "默认",
        "Value": ,
        "RecordId": 
    }
    req.from_json_string(json.dumps(params))

    resp = client.ModifyRecord(req)
    print(resp.to_json_string())

except TencentCloudSDKException as err:
    print(err)
复制成功

代码中填入对应的参数"Domain&#​34;, "Value&#​34; ,  "RecordId&#​34;

现在还缺两个参数 "SecretId&#​34;, "SecretKey&#​34;

https://console.cloud.tencent.com/cam/capi

新建密钥,填写MFA后 复制“SecretId", &#​34;SecretKey",填入上面代码

添加request请求获取本地ipv6

代码块
Python
自动换行
复制代码
import requests
ipv6 = requests.get("https://ipv6.vm3.test-ipv6.com/ip/?callback=?").text
ipv6=ipv6[16:55]
复制成功

完整代码 (在此代码只要输入对应的"SecretId&#​34;, "SecretKey&#​34;,"Domain&#​34;,"RecordId&#​34;)

代码块
Python
自动换行
复制代码
import json
import requests
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.dnspod.v20210323 import dnspod_client, models
ipv6 = requests.get("https://ipv6.vm3.test-ipv6.com/ip/?callback=?").text
ipv6=ipv6[16:55]
try:
    cred = credential.Credential("SecretId", "SecretKey")
    httpProfile = HttpProfile()
    httpProfile.endpoint = "dnspod.tencentcloudapi.com"

    clientProfile = ClientProfile()
    clientProfile.httpProfile = httpProfile
    client = dnspod_client.DnspodClient(cred, "", clientProfile)

    req = models.ModifyRecordRequest()
    params = {
        "Domain": ,
        "RecordType": "AAAA",
        "RecordLine": "默认",
        "Value": ipv6,
        "RecordId": 
    }
    req.from_json_string(json.dumps(params))

    resp = client.ModifyRecord(req)
    print(resp.to_json_string())

except TencentCloudSDKException as err:
    print(err)
复制成功

用python 来执行改脚本,或者pycharm里面运行

最后验证 https://console.cloud.tencent.com/cns 到自己的测试域名下查看解析是否发生变化,可手动更改记录值后执行该python脚本来验证

结合windows 计划任务,或linux的crontab可做到定时执行脚本,开机执行脚本等需求具体可参见前面视频​,此视频是阿里ddns Java脚本,有兴趣可以试一下,把视频里面的脚本参数"java -jar&#​34; 改为 “python”。

腾讯云最近做活动,新用户2核4G轻量服务器才70rmb  活动有时间限制,截至2021/11/1

链接直达》https://cloud.tencent.com/act/pre-2021double11?spread_hash_key=803c790f537e2a2dd705126bfc170b6e