用PHP搞掂黑群晖IPv6的DNSPod解析【7月23日更新,支持v4和v6】
无意中客服给我开了ipv4的公网,那就继续写个ipv4的,哈哈~~增加IPV4的A记录更新,可以同时更新A记录和AAAA记录
源码不放了,毛点积分哈哈,下载点这里 https://download.csdn.net/download/alinathz/86248707
=============================================================================================
最近在玩黑群晖,所以有段时间没更新了,黑裙真的没点知识的还真玩不起来。
昨晚在家里虚拟机测试了用sh脚本来搞DNSPod解析,今天在物理机上发现不能用~~~~wocao…仔细看了下记录,发现物理机里的wget版本过低,没法用TLSv1_2,尝试了用ipkg安装wget-ssl,发现也是没卵用,因为安装下来的版本还是没法用TLSv1_2,准备放弃的时候灵光一闪,直接用php来处理完事。
先简单说一下:php文件只支持腾讯云的DNSPod,也只支持IPv6,v4的就用群晖自带的吧。本帖最下面提供DNSPod.php文件下载和源码,积分有多的点下载给个1分,哈哈~,步骤如下:
1、如果你的域名在腾讯云,直接登录域名解析控制台,添加一个AAAA记录(ipv6)的子域名;
2、进入 API秘钥,创建秘钥,然后把ID和TOKEN记录下来。
3、下载 DNSPod.php,修改最上面的3个变量:
如API的ID为:123456
TOKEN为:fgd897dfg789sdgahu43jkfg89dj4332g
主域名:126.com
子域名:mail
填写如下:
$token = '123456,fgd897dfg789sdgahu43jkfg89dj4332g';
$domain = '126.com';
$sub_name = 'mail';
4、用黑群晖里面的File Station把修改好的DNSPod.php上传到 home 目录下,也可以上传到你自己的目录,自己能找到就行,随意!
5、打开 控制面板 =》信息中心 =》任务计划
6、新增 =》 计划的任务 =》用户定义的脚本
7、在计划选项卡中,设置运行频率:每5分钟,最后运行时间:23:55
8、在任务设置选项卡中设置脚本命令:php /volume1/homes/你的用户名/DNSPod.php
9、最后,最后当然是点确定啦!!然后如果想看结果,可以查看计划任务的日志,或者用SSH登录到群晖,直接运行php /volume1/homes/你的用户名/DNSPod.php查看结果。
SSH登录后运行的结果:
好了,不用在担心找不到你的nas了!!!
下载 :DNSPod.php
源码如下:
<?php
/**** 只支持 腾讯云DNSPod,同时也只支持IPV6** 将该php文件上传到群晖,然后添加到任务计划即可* 详细使用方法和疑问,请访问:https://blog.csdn.net/alinathz/article/details/125602194*** 修改下面3个变量即可* $token 为接口的 id,token(中间用英文逗号相连)* $domain 为主域名* $sub_name 为子域名前缀,如mail.126.com,则改为mail*/$token = '123456,fgd897dfg789sdgahu43jkfg89dj4332g';
$domain = '126.com';
$sub_name = 'mail';$dns = new DdnsPod($token,$domain,$sub_name);$dns->dnsCheck();/*** DDNSPOD 类*/
class DdnsPod{private $token, $domain, $sub_name;public function __construct($token,$domain,$sub_name){$this->token = $token;$this->domain = $domain;$this->sub_name = $sub_name;}/*** [检查更新dns]* @return [type] [description]*/public function dnsCheck(){$localIp = $this->getIpv6();$dnsInfo = $this->dnsInfo();echo "###########################################################################".PHP_EOL;echo '# 设备地址:'.$localIp.PHP_EOL;echo '# 解析记录:'.$this->sub_name.'.'.$this->domain.' => '.$dnsInfo['ip'].PHP_EOL;if ($localIp == $dnsInfo['ip']) {echo '# 处理结果:当前设备地址与解析记录一致,无须更新...'.PHP_EOL;}else{$rs = $this->dnsUpdate($dnsInfo['id'], $localIp);if ($rs['code'] == '1') {echo '# 处理结果:更新成功...'.PHP_EOL;echo '# 修改记录:'.$this->sub_name.'.'.$this->domain.' => '.$localIp.PHP_EOL;}}echo "###########################################################################".PHP_EOL;}/*** [更新dns]* @return [type] [description]*/public function dnsUpdate($id, $ip){$str = 'domain='.$this->domain.'&record_id='.$id.'&sub_domain='.$this->sub_name.'&record_type=AAAA&record_line=默认&value='.$ip;list($httpCode, $response) = $this->apiPost('Record.Modify', $str);$json = json_decode($response, true);if ($json['status']['code'] == '1') {return ['code' =>$json['status']['code'], 'msg'=>$json['record']['value']];}else{return ['code' =>$json['status']['code'], 'msg'=>$json['status']['message']];}}/*** [获取公网ipv6]* @return [字符串] ipv6字符串*/public function getIpv6(){exec("ifconfig", $out, $stats);foreach($out as $value){$tmp = explode('inet6 addr:',$value);$tmp1 = explode(':',trim($tmp[1]));if ($tmp1[0] != 'fe80' && !empty($tmp1[0])) {list($ipv6) = explode('/', trim($tmp[1]));return $ipv6;}}}/*** [获取dns信息]* @return [数组] id,type,ip,name*/public function dnsInfo(){$str = 'domain='.$this->domain.'&sub_name_domain='.$this->sub_name.'&record_type=AAAA';list($httpCode, $response) = $this->apiPost('Record.List', $str);$json = json_decode($response, true);if ($json['status']['code'] != '1') {echo '错误:'.$json['status']['message'].PHP_EOL;exit();}else{if (count($json['records']) > 0) {$rs = '';foreach($json['records'] as $key => $value){if ($value['type'] == 'AAAA' && $value['name'] == $this->sub_name) {$rs = ['id' => $value['id'], 'type'=>$value['type'], 'ip'=>$value['value'], 'name'=> $value['name']];continue;}}if (!empty($rs)) {return $rs;}else{echo '错误:找不到域名 '.$this->sub_name.'.'.$this->domain.' 的AAAA记录...'.PHP_EOL;exit();}}else{echo '错误:找不到域名 '.$this->sub_name.'.'.$this->domain.' 的AAAA记录...'.PHP_EOL;exit();}}}/*** [apiPost description]* @param [字符串] $handler [操作]* @param [字符串] $parameter [参数]* @return [数组]*/public function apiPost($handler, $parameter){$url = 'https://dnsapi.cn/'.$handler;$parameter = 'login_token='.$this->token.'&format=json&'.$parameter;$ch = curl_init();curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_POSTFIELDS, $parameter);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);$response = curl_exec($ch);$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);curl_close($ch);return array($httpCode, $response);}
}
?>
用PHP搞掂黑群晖IPv6的DNSPod解析【7月23日更新,支持v4和v6】相关推荐
- 惠普T610 安装黑群晖及其配置
环境准备: 惠普T610 (6GRAM 16Gsata固态 1T2.5寸机械硬盘) 鼠标 键盘 工具软件:度盘链接(自行拼接): 1ahQQVfZXXWgoV_92-AWs7A 提取码: xt ...
- 折腾黑群晖之域名直接访问群晖
去年一年攒了几百块私房钱为自己添置了一款矿难暴风2期,然后折腾了黑群晖,安装了很久,但是一直无法外网访问,前些天再研究了一下,发现是脚本的问题,在B站找到了最新的脚本,终于成功了,记录一下! 实现外网 ...
- 黑群晖Aria2下载BT,磁力amp;PT自用详细设置
用了黑群晖,安装Arai2,发现BT,PT,磁力各种不给力,查百度发现很多配置都比较落后,而且最重要都没有Trackers,因此特意写了这篇以供详细参考. Arai2安装,贪图方便,这里是用群晖里面d ...
- wdnas群晖nas_WD 西部数据 伪NAS折腾记 篇三:WD 西部数据 MyCloud安装黑群晖教程
WD 西部数据 伪NAS折腾记 篇三:WD 西部数据 MyCloud安装黑群晖教程 2015-12-10 18:21:45 82点赞 408收藏 92评论 首先感谢一下nasyun的大神zwl2012 ...
- 黑群晖从无到有完善指南
一下为本人折腾黑群晖的一些笔记 平台为华擎j3455,群晖版本为1.02b(DS3617+) 写本文是为了让自己以后不再通过一堆网站的指导,只通过这一篇文章完成群晖从零到比较完美的形态的配置,更多是为 ...
- PVE+软路由+黑群晖[卒]
背景: 目前虽然对软路由没有很急迫的需求,但是想要搞一套自己的svn所以这个就提上了日程 硬件配置 DQ77KB i5-3475s 16G DDR3L SSD+HDD PVE安装 PVE兼容存在问题, ...
- dev 获取gridview没有rows属性_虚拟黑群晖不直通也可以获取到SMART?
黑群晖的用户,都有一个痛点,那就是访问硬盘的SMART信息! SMART是什么? SMART并不是它字面的意思:聪明.而是Self-Monitoring, Analysis and Reporting ...
- 2020黑群晖最稳定版本_打造完美6.2.3黑群晖,正确显示 CPU,支持Nvme缓存
大家好,我是晓飞影! 一个数码爱好者,也喜欢在众多平行领域探究摸索,让生活多一点乐趣. 之前分享了一台正版蜗牛星际 A 款机箱组装 NAS 的文章,搭配 i3-8100和华擎 H310CM-ITX/a ...
- 群晖备份linux分区,黑群晖二合一系统无损扩充系统分区方法补充
黑群晖二合一系统无损扩充系统分区方法补充 2020-01-19 14:54:08 28点赞 172收藏 35评论 创作立场声明:本文作者也是经过多次重装实验,耗费了大把时间,值钱用diskgenius ...
- pve安装黑群晖直通硬盘_在Proxmox VE(PVE)安装黑群晖
一.环境介绍 1.Proxmox VE(以下简称PVE) 5.4-3 2.黑群晖引导(本教程采用DSM3617-1.03b引导)由Jun大神提供(相关文件可从网盘下载) 3.黑群晖系统PAT安装包(本 ...
最新文章
- Error in variable_response could not find function “variable_response“
- iOS - appledoc 文档生成
- 《ACM国际大学生程序设计竞赛题解Ⅰ》——模拟题
- python中 getnode用法_node.js 爬虫入门总结
- Codeforces 173E Camping Groups 线段树
- 回溯法|Backtracking
- 文本区域的高度随着内容增加----插件
- 震惊!99%的网络工程师都不知道的组播问题
- 年轻人的第一笔债,在双11的直播间里
- sentaurus学习日记(二)--器件特性提取
- 应用--学生宿舍卫生管理系统
- 7-1 掉入陷阱的数字
- java表示自然数,将一个正整数表示为连续自然数的和
- 数据库技术-数据库概念设计
- 为交付Semi卡车做准备 特斯拉招募技术服务人员
- Substrate是什么,为什么要选择Substrate
- 基于OSGi的企业级开发框架实践——运行开发框架
- Hint: If you want to see a list of allocated tensors when OOM happens,
- 面试官:你说你懂i++跟++i的区别,那你会做下面这道题吗?
- 模电中NPN和PNP导通条件