2025年3月19日 星期三 甲辰(龙)年 月十八 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 服务器 > 网络服务

使用阿里云DNS的API接口实现DDNS动态域名解析

时间:02-26来源:作者:点击数:46

获取域名解析记录列表

  • // This file is auto-generated, don't edit it. Thanks.
  • package main
  • import (
  • "fmt"
  • "os"
  • alidns20150109 "github.com/alibabacloud-go/alidns-20150109/v4/client"
  • openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
  • util "github.com/alibabacloud-go/tea-utils/v2/service"
  • "github.com/alibabacloud-go/tea/tea"
  • )
  • /**
  • * 使用AK&SK初始化账号Client
  • * @param accessKeyId
  • * @param accessKeySecret
  • * @return Client
  • * @throws Exception
  • */
  • func CreateClient(accessKeyId *string, accessKeySecret *string) (_result *alidns20150109.Client, _err error) {
  • config := &openapi.Config{
  • // 必填,您的 AccessKey ID
  • AccessKeyId: accessKeyId,
  • // 必填,您的 AccessKey Secret
  • AccessKeySecret: accessKeySecret,
  • }
  • // Endpoint 请参考 https://api.aliyun.com/product/Alidns
  • config.Endpoint = tea.String("alidns.cn-hangzhou.aliyuncs.com")
  • _result = &alidns20150109.Client{}
  • _result, _err = alidns20150109.NewClient(config)
  • return _result, _err
  • }
  • func _main(args []*string) (_err error) {
  • // 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 和 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
  • // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取 AccessKey 的方式进行调用,仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378661.html
  • client, _err := CreateClient(tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")), tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")))
  • if _err != nil {
  • return _err
  • }
  • describeDomainRecordsRequest := &alidns20150109.DescribeDomainRecordsRequest{DomainName: args[0]}
  • runtime := &util.RuntimeOptions{}
  • tryErr := func() (_e error) {
  • defer func() {
  • if r := tea.Recover(recover()); r != nil {
  • _e = r
  • }
  • }()
  • // 复制代码运行请自行打印 API 的返回值
  • var result *alidns20150109.DescribeDomainRecordsResponse
  • result, _err = client.DescribeDomainRecordsWithOptions(describeDomainRecordsRequest, runtime)
  • if _err != nil {
  • return _err
  • }
  • fmt.Printf("--reslut(%+v)---\n", result.Body.DomainRecords)
  • return nil
  • }()
  • if tryErr != nil {
  • var error = &tea.SDKError{}
  • if _t, ok := tryErr.(*tea.SDKError); ok {
  • error = _t
  • } else {
  • error.Message = tea.String(tryErr.Error())
  • }
  • // 如有需要,请打印 error
  • _, _err = util.AssertAsString(error.Message)
  • if _err != nil {
  • return _err
  • }
  • }
  • return _err
  • }
  • func main() {
  • err := _main(tea.StringSlice(os.Args[1:]))
  • if err != nil {
  • panic(err)
  • }
  • }

修改域名解析记录

  • // This file is auto-generated, don't edit it. Thanks.
  • package main
  • import (
  • "fmt"
  • "os"
  • alidns20150109 "github.com/alibabacloud-go/alidns-20150109/v4/client"
  • openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
  • util "github.com/alibabacloud-go/tea-utils/v2/service"
  • "github.com/alibabacloud-go/tea/tea"
  • )
  • /**
  • * 使用AK&SK初始化账号Client
  • * @param accessKeyId
  • * @param accessKeySecret
  • * @return Client
  • * @throws Exception
  • */
  • func CreateClient(accessKeyId *string, accessKeySecret *string) (_result *alidns20150109.Client, _err error) {
  • config := &openapi.Config{
  • // 必填,您的 AccessKey ID
  • AccessKeyId: accessKeyId,
  • // 必填,您的 AccessKey Secret
  • AccessKeySecret: accessKeySecret,
  • }
  • // Endpoint 请参考 https://api.aliyun.com/product/Alidns
  • config.Endpoint = tea.String("alidns.cn-hangzhou.aliyuncs.com")
  • _result = &alidns20150109.Client{}
  • _result, _err = alidns20150109.NewClient(config)
  • return _result, _err
  • }
  • func _main(args []*string) (_err error) {
  • // 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 和 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
  • // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取 AccessKey 的方式进行调用,仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378661.html
  • client, _err := CreateClient(tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")), tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")))
  • if _err != nil {
  • return _err
  • }
  • updateDomainRecordRequest := &alidns20150109.UpdateDomainRecordRequest{RecordId: args[0], RR: args[1], Type: args[2], Value: args[3]}
  • runtime := &util.RuntimeOptions{}
  • tryErr := func() (_e error) {
  • defer func() {
  • if r := tea.Recover(recover()); r != nil {
  • _e = r
  • }
  • }()
  • // 复制代码运行请自行打印 API 的返回值
  • var result *alidns20150109.UpdateDomainRecordResponse
  • result, _err = client.UpdateDomainRecordWithOptions(updateDomainRecordRequest, runtime)
  • if _err != nil {
  • return _err
  • }
  • fmt.Printf("--result(%+v)---\n", result.Body)
  • return nil
  • }()
  • if tryErr != nil {
  • var error = &tea.SDKError{}
  • if _t, ok := tryErr.(*tea.SDKError); ok {
  • error = _t
  • } else {
  • error.Message = tea.String(tryErr.Error())
  • }
  • // 如有需要,请打印 error
  • _, _err = util.AssertAsString(error.Message)
  • if _err != nil {
  • return _err
  • }
  • }
  • return _err
  • }
  • func main() {
  • err := _main(tea.StringSlice(os.Args[1:]))
  • if err != nil {
  • panic(err)
  • }
  • }

项目实践

我在Github上附上了完整的代码,感兴趣的可以下载学习:https://github.com/iotames/qddns

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门