通过dynv6提供ipv6的ddns动态解析服务

通过dynv6提供ipv6的ddns动态解析服务通过 dynv6 提供 ipv6 的 ddns 动态解析服务 dynv6

大家好,欢迎来到IT知识分享网。

dynv6的操作

创建域名

image.png

创建token

image.png
image.png
image.png
image.png


win主机上的操作

安装python环境。

安装python第三方库

requests

  • 简介: requests 库是一个流行的第三方库,用于处理 HTTP 请求。
  • 用途: 发送 GET、POST 等 HTTP 请求,处理响应数据。
  • 安装方法: 你需要使用 pip 来安装 requests 库。
pip install requests 
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple 

获得网卡mac地址

用于定位解析那张网卡
在win运行cmd,在cmd终端执行ipconfig /all 命令查看网卡的mac地址
image.png



编写python代码

vim test.py
如下代码只需在入口函数处填写mac_address和token信息即可。

import re import subprocess import requests def get_ipv6_address(mac_address): try: # 使用ipconfig命令获取网卡信息 result = subprocess.run(['ipconfig', '/all'], capture_output=True, text=True) if result.returncode == 0: output = result.stdout # 使用正则表达式匹配适配器段落 adapters = re.findall(r'适配器 .*?:\n(.*?)\n\n', output, re.DOTALL) for adapter in adapters: # 检查是否包含给定的MAC地址 if mac_address in adapter: # 查找IPv6地址 ipv6_match = re.search(r'IPv6 地址.*?:(.*?)(?:\n|$)', adapter) if ipv6_match: ipv6_address = ipv6_match.group(1).strip().split('(首选)')[0] return ipv6_address return "未找到匹配的网卡地址" else: return "无法执行ipconfig命令" except Exception as e: return f"发生错误:{str(e)}" def send_dynv6_update_request(ipv6, token, domain): # 构建URL url = f"http://dynv6.com/api/update?hostname={domain}&token={token}&ipv6={ipv6}&ipv6prefix={ipv6}" print('构建URL',url) # 发送GET请求 response = requests.get(url) # 返回响应内容 return response.text if __name__ == "__main__": print('begin...') # 需要填写的参数 # 替换成你要更新ipv6所属网卡的MAC地址 mac_address = "mac" # 替换成你的token token = 'token' #填写你要解析的域名 domain='domain' #获取ipv6地址 ipv6_address = get_ipv6_address(mac_address) print("MAC地址", mac_address, "对应的IPv6地址为:", ipv6_address) ipv6 = ipv6_address # 发送更新数据 response_text = send_dynv6_update_request(ipv6, token, domain) print(response_text) 

长期运行方式

注册服务的方式运行(建议),注意目标链接的python代码不一致。

通过dynv6提供ipv6的ddns动态解析服务

创建计划任务方式

image.png
image.png


编辑常规

image.png

新建触发器

image.png

新建操作

image.png

编辑条件

image.png

编辑设置

image.png

linux主机上的操作

需安装wget工具

以下是不同Linux发行版安装wget工具的命令:

Ubuntu/Debian
sudo apt update # 更新包列表 sudo apt install wget # 安装wget 

CentOS/RHEL

CentOS 7及以下版本:

sudo yum install wget # 使用yum安装wget 

CentOS 8及更新版本:

sudo dnf install wget # 使用dnf安装wget 

创建shell脚本

vim update_ipv6.sh 
#!/bin/bash # dynv6的API更新令牌 token='填写你的令牌' hostname='填写你的域名' # 网卡名 interf='ovs_bond0' # 提取ovs_bond0接口的第一个全球IPv6单播地址 ipv6=$(ip -6 addr show dev $interf | grep 'inet6' | grep 'dynamic mngtmpaddr noprefixroute' | grep -v 'fe80' | grep -v 'deprecated' | awk '{print $2}' | cut -d/ -f1 | head -n 1) # 打印提取到的IPv6地址 echo "Extracted IPv6: $ipv6" # 使用wget命令更新dynv6的A记录 wget --no-check-certificate -q -O dynv6.log "http://dynv6.com/api/update?hostname=$hostname&token=$token&ipv6=$ipv6&ipv6prefix=$ipv6" 
chmod +x update_ipv6.sh 

添加脚本到 crontab

  1. 先确保脚本有可执行权限:
chmod +x update_ipv6.sh 
  1. 使用 crontab -e 命令编辑 crontab
crontab -e 
  1. 添加以下行来安排脚本每天运行:
5 * * * * /path/to/your/update_ipv6.sh 

这里要填写update_ipv6.sh脚本的绝对路径,pwd命令可查看当前目录路径。

  1. 保存并退出编辑器。新的 crontab 作业表将自动生效。

说明:crontab 的格式

每行 crontab 作业表的格式如下:

* * * * * command_to_execute - - - - - | | | | | | | | | +---- 一周中的某一天 (0 - 7) (Sunday is both 0 and 7) | | | +------ 一个月中的某一天 (1 - 31) | | +-------- 一年中的某一月 (1 - 12) | +---------- 一天中的某一小时 (0 - 23) +------------ 一小时中的某一分钟 (0 - 59) 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/117493.html

(0)
上一篇 2025-11-20 17:15
下一篇 2025-11-20 17:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信