通过AI助手实现一个nas定时任务更新阿里云域名解析

一.通过AI助手实现一个ip-domain.py的脚本

起一个Python脚本,ip-domain.py;注意已安装Python3.+的运行环境;将下面阿里云相关配置添加,注意这里引用了两个包,requests和alibabacloud_alidns20150109;执行前需要安装一下,然后python ip-domain.py就可以尝试一下效果喽。

这里使用的是通义灵码辅助,虽然给出的提示无法直接执行,但是框架算是有了,然后结合阿里云API的Python版进行调整,最终结果如下:

这里分三个步骤:

①获取本地IP

②获取域名对应阿里云解析

③判断当前解析IP与本地域名IP不一致时,进行更新


# python ip-domain.pyimport json
# pip install requests
import requests
from datetime import datetime
# pip install alibabacloud_alidns20150109==3.2.0
from alibabacloud_alidns20150109.client import Client as Alidns20150109Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_alidns20150109 import models as alidns_20150109_models
from alibabacloud_tea_util import models as util_models# 阿里云相关配置
ALIYUN_ACCESS_KEY = "" # 阿里云查看accessKey
ALIYUN_SECRET_KEY = "" # 阿里云查看secretKey
ALIYUN_REGION_ID = ""  # 替换为您的实际地域ID
ALIYUN_DOMAIN_NAME = "" # 待解析的域名
ALIYUN_SUBDOMAIN = ""  # 带解析的子域名
ALIYUN_RECORD_TYPE = ""  # 解析类型为A记录
ALIYUN_RECORD_LINE = ""  # 默认线路或其他指定线路,默认default
ALIYUN_RECORD_ID = "" #解析记录的ID,可以通过域名列表F12查看def get_local_ip():try:response = requests.get("https://api.ipify.org")return response.text.strip()except requests.exceptions.RequestException as e:print(f"Error getting local IP: {e}")return Nonedef get_current_dns_record(client, recordId):describe_domain_record_info_request = alidns_20150109_models.DescribeDomainRecordInfoRequest(record_id=recordId)runtime = util_models.RuntimeOptions()try:# 复制代码运行请自行打印 API 的返回值response = client.describe_domain_record_info_with_options(describe_domain_record_info_request, runtime)print(f"GET DNS body: {response.body}")record_ip = response.body.valuereturn record_ipexcept Exception as error:# 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。# 错误 messageprint(f"GET DNS error: {error}")return Nonedef update_dns_record(client, recordId, ipAddress, subDomain, recordType):request = alidns_20150109_models.UpdateDomainRecordRequest(record_id=recordId,value=ipAddress,rr=subDomain,type=recordType)runtime = util_models.RuntimeOptions()try:# 复制代码运行请自行打印 API 的返回值response = client.update_domain_record_with_options(request, runtime)print(f"UPDATE DNS response: {response}")return responseexcept Exception as error:# 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。# 错误 messageprint(f"UPDATE DNS error: {error}")return Nonedef main():current_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')# 初始化AcsClient实例config = open_api_models.Config( access_key_id=ALIYUN_ACCESS_KEY, access_key_secret=ALIYUN_SECRET_KEY )# Endpoint 请参考 https://api.aliyun.com/product/Alidnsconfig.endpoint = f'alidns.cn-hangzhou.aliyuncs.com'client = Alidns20150109Client(config)local_ip = get_local_ip()print(f"{current_time} Local IP: {local_ip}")dns_record_ip = get_current_dns_record(client, ALIYUN_RECORD_ID)print(f"{current_time} DNS Record IP: {dns_record_ip}")if local_ip is not None and local_ip != dns_record_ip:update_dns_record(client, ALIYUN_RECORD_ID, local_ip, ALIYUN_SUBDOMAIN, ALIYUN_RECORD_TYPE)print(f"{current_time} DNS record updated successfully.")else:print(f"{current_time} IP addresses match. No update required.")if __name__ == "__main__":main()

 注意关于ALIYUN_RECORD_ID获取

二.找一个任务管理器进行调用,这里使用了nas上任务计划

控制面板,添加任务计划

用户这里选中root,否则需要授权,指定任务名称

制定一个每二十分钟执行一次的定时任务

将准备好的脚步执行语句填写上:

python “/volume1/docker/localip/ip-domain.py” >> “/volume1/docker/localip/log.txt” 2>&1

点击确定,就可以等待执行喽;查看一下执行日志,然后更新啦;

如果此时你家支持外网IP访问的话,就可以使用域名访问自己nas了。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/5218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SCP收容物151~160

注 :此文接SCP收容物141~150,本文只供开玩笑 ,与steve_gqq_MC合作。 --------------------------------------------------------------------------------------------------------------------------------- 目录 scp-151 scp-152 scp-153 scp-154 scp-155…

leetcode刷题记录:归并排序和快速排序

1. 快速排序 https://labuladong.github.io/algo/di-yi-zhan-da78c/shou-ba-sh-66994/kuai-su-pa-39aa2/ 1.1 快排基础 先看核心代码 def sort(nums, lo, hi):if (lo > hi):returnp partition(nums, lo, hi)sort(nums, lo, p-1)sort(nums, p1, hi)一句话总结快排&#xf…

小米消金深耕老年服务,不断强化消费者权益保护新举措

随着互联网金融的蓬勃发展,网上银行、手机银行及非现金支付等新型服务形式日益普及,金融产品与服务层出不穷。然而,对于老年人群体而言,他们在面对现代科技和网络时可能感到困惑,容易对复杂的金融产品产生误解。鉴于此…

一文带你了解5款高效率软件,建议收藏

​ 人类与99%的动物之间最大差别在于是否会运用工具,借助好的工具,能提升几倍的工作效率。 1. 高速文件复制——TeraCopy ​ TeraCopy是一款高效的文件复制工具,可以大幅度提高文件复制和移动的速度。它支持多线程复制、错误恢复、校验和等…

React的路由

1. 什么是前端路由 一个路径 path 对应一个组件 component 当我们在浏览器中访问一个 path 的时候,path 对应的组件会在页面中进行渲染 2. 创建路由开发环境 # 使用CRA创建项目 npm create-react-app react-router-pro# 安装最新的ReactRouter包 npm i react-ro…

罗宾斯《管理学》第13版/教材讲解/考研真题视频课程/网课

本课程是罗宾斯《管理学》(第13版)精讲班,为了帮助参加研究生招生考试指定考研参考书目为罗宾斯《管理学》(第13版)的考生复习专业课,我们根据教材和名校考研真题的命题规律精心讲解教材章节内容。 序号名…

如何使用PHP进行图片处理?

如何使用PHP进行图片处理? 使用PHP进行图片处理是一项强大的功能,它可以让你在服务器端对图像进行各种操作,如裁剪、缩放、添加水印、调整颜色等。这通常通过使用GD库或Imagick扩展来实现。下面将详细介绍如何使用PHP和这两个工具进行图片处…

WinForms 应用程序中使用 SignalR 连接到服务器

安装 dotnet Install Microsoft.AspNetCore.SignalR.ClientWinForms 应用程序中使用 SignalR 连接到服务器时 安装 SignalR 客户端库:使用 NuGet 包管理器安装 SignalR 客户端库。创建 SignalR 连接:在代码中创建 SignalR 连接,并指定服务器…

前端工程化Vue使用Node.js永久设置国内高速npm镜像源

前端工程化Vue使用Node.js永久设置国内高速npm镜像源 接续上篇错误收录,此篇通过简单配置永久设置国内高速npm镜像源方法 1.更换新版镜像 清空npm缓存 npm cache clean --force修改回原版镜像源或直接删除配置过的镜像源 npm config set registry https://registr…

Linux挂载硬盘

1、查看硬盘数量 fdisk -l # 可以看到三个磁盘 # /dev/vda 50G # /dev/vdb 100G 新增 # /dev/vdc 100G 新增2、查看当前挂载情况 df -h # 可以看到50G的已经挂载3、格式化待挂载盘 # 对新的数据盘进行挂载前要进行格式化,只有格式化后才可以挂载 mkfs.ext4 /dev/…

电商技术揭秘三十五:智能风控功能架构浅析

相关系列文章 电商技术揭秘相关系列文章合集(1) 电商技术揭秘相关系列文章合集(2) 电商技术揭秘二十八:安全与合规性保障 电商技术揭秘二十九:电商法律合规浅析 电商技术揭秘三十:知识产权保…

【c++】优先级队列与仿函数:C++编程的强大组合

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本篇文章我们来讲解优先级队列priority_queue 目录 1.priority_queue的介绍和使用函数使用仿函数的使用与介绍greater和less 2.priority_queue的模拟实现基本框架…

网络安全SQL注入

HTML & Vue.js 结合使用 HTML 是网页的基础结构语言,而 Vue.js 是一个用于构建用户界面的渐进式JavaScript框架。结合两者,你可以创建动态、响应式的Web应用程序。Vue.js通过指令(如v-bind, v-if, v-for)无缝集成到HTML中&am…

统一化数据库:为大语言模型垂域应用奠定基础

编者按:检索增强生成(RAG)技术因在减少生成幻觉和虚构信息方面的显著效果,以及对知识及时更新能力的改善,正逐渐成为大语言模型系统的主流架构之一。随着 RAG 技术的广泛应用,其核心组件——向量数据库&…

2022 csp-j 答案(精选题)

主题目 16 - 21题 22 - 27题 28 - 34题 35 -39题 40 - 44题 精选题目 答案及解析 28题 答案:T 解析:考查时间复杂度评估。 31题 答案:A 解析:模拟即可。 32题 答案:B 解析:模拟即可。 34题 答…

Android 学习 鸿蒙HarmonyOS 4.0 第一天

1.1系统定位 1.1.1系统定位 HarmonyOS 是一款面向万物互联时代的,全新的分布式操作系统。 在传统的单设备系统能力基础上,HarmonyOS 提出了基于同一套系统能力,适配多种终端形态的分布式理念,能支持手机,平板&#xf…

线上线下包搭建小程序/公众号/H5 支持二开!

网上交友有以下三个积极影响: 1. 扩展社交圈和增加社交机会:网上交友可以让人们接触到不同地区、不同背景、不同文化的人,拓展人们的社交圈并且增加交友机会。这些新的社交联系对于个人的成长和发展有积极的影响,可以让人们学习新…

线阵相机和面阵相机简介

线阵相机 线阵相机,顾名思义就是所探测的物体要在一个很长的界面上。线阵相机的传感器只有一行感光像素,所以线阵相机一般具有非常高的扫描频率和分辨率。 线阵相机特点 线阵相机使用的线扫描传感器通常只有一行感光单元(少数彩色线阵使用…

国内各种免费AI聊天机器人(ChatGPT)推荐(上)

作者主页:点击! 国内免费AI推荐专栏:点击! 创作时间:2024年4月27日11点25分 欢迎来到AI聊天机器人推荐系列的第一篇文章! 在这个系列中,我将引领您探索国内各种AI聊天机器人的精彩世界。 从…

k8s-身份认证与权限

认证概述 Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作。 在Kubernetes集群中,客户端通常有两类: User Account:一般是独…