一、问题由来

最开始只是通过邮件发送最新的公网IP地址,再手动通过阿里云修改解析记录,但是这样很麻烦,也不够帅气。
因此希望通过我的域名服务商阿里云,自带的api解决。

本机环境

Ubuntu 20.04

二、准备工作

1.注册AccessKey

首先登录个人的阿里云账号,我的是RAM账户。各位的可以使用主账户进行使用AccessKey。

创建你的AccessKey,并记录下来。

2.获取域名的RecordId

这里可以通过这位大佬的方法找到RecordId。

三、阿里云API

可以通过访问修改解析记录 点击调试

点击下方按钮减少填写内容

填写刚刚的RecordId

下面的根据自己的需求填写。
可以试着在Value随便填写一个ip地址并发起调用,再去看看域名的解析记录是否发生改变,改变则调用成功。

我在测试的时候用的是原版的SDK所以在这里介绍原版内容。

在服务器上下载SDK



复制到自己的环境中,将最开始的获取到的AccessKey,修改到代码中。
尝试运行一下。

四、结合获取公网地址

获取公网地址python代码

from urllib.request import urlopen
from json import load
ip = load(urlopen('https://api.ipify.org/?format=json'))['ip']

将上述代码复制进复制的代码。
并将代码中的IP地址替换成变量ip。

代码下载 动态域名解析.zip

#!/usr/bin/env python
#coding=utf-8
from urllib.request import urlopen
from json import load
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkcore.auth.credentials import AccessKeyCredential
from aliyunsdkcore.auth.credentials import StsTokenCredential
from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequestip = load(urlopen('https://api.ipify.org/?format=json'))['ip']credentials = AccessKeyCredential('你的key-id', '你的key-secret')
# use STS Token
# credentials = StsTokenCredential('<your-access-key-id>', '<your-access-key-secret>', '<your-sts-token>')
client = AcsClient(region_id='cn-hangzhou', credential=credentials)request = UpdateDomainRecordRequest()
request.set_accept_format('json')request.set_RecordId("你的域名RecordId")
request.set_RR("@")
request.set_Type("A")
request.set_Value(ip)response = client.do_action_with_exception(request)
# python2:  print(response)
print(str(response, encoding='utf-8'))

可以结合我的另外一篇文章

#!/bin/bash
# MAYBE CHANGE THESE
ip=$(curl http://pv.sohu.com/cityjson 2>> /dev/null | awk -F '"' '{print $4}')
ip_file="/usr/local/bin/check_ip.txt"
log_file="/usr/local/bin/check_log.txt"
if [ -f $ip_file ]; thenold_ip=$(cat $ip_file)echo $old_ipif [ $ip != $old_ip ]thenecho "IP has not changed."python3 *.pyecho "--------yes--------"echo "$ip" | s-nail  -s "ip" *****@qq.comecho -e "[$(date)] - $ip" >> $log_fileecho "$ip" > $ip_fileelseecho "exlt"exit 0fi
fi
————————————————
版权声明:本文为CSDN博主「Yanmz_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37383852/article/details/119641446

放在同一个目录下
在echo "IP has not changed."下面添加语句
python3 *.py
从而实现自动检测IP变化,更新解析记录,邮件发送服务。

个人服务器实现阿里云DDNS(动态域名解析)相关推荐

  1. Python实现阿里云DDNS动态域名解析

    想要更好的阅读体验,可以转我的个人博客. DDNS 简介 DDNS(Dynamic Domain Name Server),它的作用是将用户的动态IP绑定到一个域名上去. 这样就算你的服务器IP发生了 ...

  2. 阿里云DDNS动态绑定域名与IP实现远程调试远程办公

    之前申请了公网IP,这样调试接口的时候可以直接远程调试,但因为申请的公网IP会随时变化,所以使用阿里云DDNS服务,随时绑定公网IP,直接域名访问服务. 1.创建阿里云账号和访问密钥(AccessKe ...

  3. vue 获取动态域名_通过阿里云实现动态域名解析DDNS

    前言 该脚本的代码大部分是参考自阿里云的官方帮助文档. 1, 脚本语言使用的是python, 我个人只是了解python,没有太深入的知识功底 2, 脚本代码我会尽量详细地添加注释说明,有问题欢迎留言 ...

  4. python3实现阿里云DDNS域名动态解析

    一. 前言 家里部署了一台NAS服务器,在公司平时都是通过IP访问的,现在想更改为用域名去访问,但是家里的宽带都是动态的公网IP,每次IP变了都需要手动解析一次域名,这样就比较麻烦,那怎么办了?这个时 ...

  5. 阿里云DDNS(动态域名解析)获取解析并对比

    一.问题由来 昨天家里停电了,来电后IP地址改变了.但是并没有更新到域名解析数据上.所以感觉之前写的代码有一丝丝的不稳定. 今天重新写一个直接点的.直接查询域名服务器的解析地址,与本地公网IP地址比对 ...

  6. 群晖NAS教程(二十一)、利用Docker安装DDNS动态域名解析,自动更新域名解析到公网IP(支持阿里云、腾讯云dnspod、Cloudflare、华为云)

    群晖NAS教程(二十一).利用Docker安装DDNS动态域名解析,自动更新域名解析到公网IP(支持阿里云.腾讯云dnspod.Cloudflare.华为云) 为了更好的浏览体验,欢迎光顾勤奋的凯尔森 ...

  7. Python+阿里云DNS 搭建DDNS动态域名解析

    家用的动态公网IP在断电以及一段时间后会变化,现在家宽公网IP开网盘以及代理管得越来越严格,已经有检测到被封的案例 上海检测web封停 这让我这种挂种子的PT党(迫真)感到害怕 以前我把国外的免费域名 ...

  8. 动态更新阿里云DDNS解析记录的IPv6地址,随时随地用域名远程访问自己的电脑【如何远程访问家里的电脑】

    远程访问电脑 日志 简介 要求 1. 获取两台电脑 2.IPv6网络 2.1检查光猫 2.2检查路由器 2.3配置电脑防火墙 2.3.1添加ICMPv6协议 2.3.2配置SMB协议 2.4配置远程桌 ...

  9. 阿里云ddns,动态域名更新Python脚本,基于Python3,适用于linux

    阿里云ddns更新脚本,基于Python3 前提:已经在阿里云注册了一个域名,获得AccessKey ID AccessKey Secret,先添加了一个子域名解析,解析值随便 然后获取这个子域名的r ...

最新文章

  1. python的turtle绘图体系入门必看(一)
  2. 编写Web前端代码的注意事项
  3. Python 爬虫学习 系列教程
  4. Jmeter - 服务器性能检测
  5. 决策树缺失值python_【机器学习笔记之二】决策树的python实现
  6. 谁说Dota2赢了人类的AI太水?连比尔·盖茨都啧啧称赞了
  7. docker api java_docker-java Docker的java API
  8. Mysql和mono_c# – 让Linq与Mysql和Mono玩得很好,有可能吗?
  9. mysql死锁案例及解决方案_MySQL死锁案例分析与解决方案
  10. 证件照尺寸修改、图片背景换色、照片大小压缩…几个在线图片编辑、处理网站推荐
  11. 数据结构:按成绩输出名次排序
  12. Vue3+vite配置postcss-pxtorem报错[plugin:vite:css] Failed to load PostCss config
  13. 多传感器融合定位三-3D激光里程计其三:点云畸变补偿
  14. 2019年的如今iPhone4S还能这么用
  15. 2022年最新版Spring专项面试突击
  16. 利用Hexo+github搭建博客,零成本、无需域名、服务器
  17. SpringBoot项目在IDEA上实现热部署
  18. 使用cv2实现图片与numpy数组的相互转化
  19. 2-4、React+antd页面UI美化——登录界面设计
  20. 解决win7win10系统安装金蝶k3老版本客户端问题

热门文章

  1. 计算机网络中www中文名称为,计算机等级考试试题及答案解析(网络知识) -备考资料...
  2. syslog 日志管理系统
  3. 蓝桥杯十大常见天阶功法——音之呼吸.肆之型.模拟
  4. css文件更新后浏览器网页仍然显示以前的css文件
  5. 精益管理学会:精益生产是谁命名的?99.9%人都说错了
  6. 《Java并发编程实践》笔记6——并发性调优
  7. 钟汉良日记:莫慌,收获和播种不在一个季节
  8. ATI显卡优酷,PPs看电影花屏或全屏卡的解决方法(未验证)
  9. ecs加解密_阿里云发布ECS磁盘加密,一键加密,业务0改动
  10. linux 修改文件所有者 root/普通用户