DnsPod.com域名解析接口封装(适用群辉,支持二级域名)

<!-- 
 注释:DnsPod.com域名解析接口封装(支持群晖DDNS接口)
 作者:豌豆豆
 邮箱:613520823@qq.com
 -->

<!-- 这里是群晖的设置连接需要的地址,也可以浏览器里手动请求,需要把192.168.10.2改成自己的服务器地址 
 需要在服务器PHP开启Curl支持
 http://192.168.10.2/DDNS_DNSPOD_UpDate.php?UserName=__USERNAME__&PassWord=__PASSWORD__&HostName=__HOSTNAME__&IpAddress=__MYIP__ -->

<?php
//post请求
function RunPost($Url, $PostParameter){
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL,$Url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $PostParameter); // Post提交的数据包
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作

if (curl_errno($curl)) {
echo 'Errno'.curl_error($curl); //捕抓异常
curl_close($curl); // 关闭CURL会话
header('HTTP/1.1 412 Not Found');
echo "请检查参数配置,或联系作者!";
exie();
 }
curl_close($curl); // 关闭CURL会话
return $tmpInfo; // 返回数据,json格式
}
//拼接Post字符串
function GetParameterStr($ParameterArray){
ksort($ParameterArray);
$returnStr="";
foreach ($ParameterArray as $key=>$value)
 {
$returnStr .= $key;
$returnStr .= "=";
$returnStr .= $value;
$returnStr .= "&";
 }
unset($key, $value);
$returnStr = substr($returnStr,0,strlen($returnStr)-1);
return $returnStr;
}
//获取群晖传递过来的参数
$UUserName=$_GET["UserName"];
$UPassWord=$_GET["PassWord"];
$UHostName=$_GET["HostName"];
$UIpAddress=$_GET["IpAddress"];
//赋值参数
$Url="";
$login_token=$UUserName.",".$UPassWord;
$format="json";
$domain=$UHostName;
$record_id="0";
$value=$UIpAddress;
$record_type="A";
$record_line_id="0";
$sub_domain="";
//参数数组
$ParameterArray=array(
"login_token"=>$login_token,
"format"=>"json",
"domain"=>$domain,
"record_id"=>$record_id,
"value"=>$value,
"record_type"=>$record_type,
"record_line_id"=>$record_line_id,
"sub_domain"=>$sub_domain
);
$RecordList = array();
//更换接口为记录列表接口
$Url="https://dnsapi.cn/Record.List";
$PostReturnInfo=RunPost($Url,"login_token=".$login_token."&"."domain=".$domain."&"."format=".$format);
$de_json = json_decode($PostReturnInfo,TRUE); 
if ($de_json["status"]["code"]==1){
for ($i = 0,$j = 0; $i < count($de_json["records"]); $i++) 
 { 
//这里进行记录类型的过滤,需要添加的新记录类型的请自行添加,参数也请自行添加
if ($de_json["records"][$i]["type"] == "A"){
$RecordArrayTmp["records"] = $de_json["records"][$i]["id"];
$RecordArrayTmp["name"] = $de_json["records"][$i]["name"];
$RecordList[$j]=$RecordArrayTmp;
$j++;
 }
 } 
}
// 目前群晖回自己判断,手动判断ip地址是否变化,有时间了在写
// 更换接口为记录修改接口
$Url="https://dnsapi.cn/Record.Modify";
for($i = 0 ;$i < count($RecordList);$i++){
echo $RecordList[$i]["records"]."-----";
echo $RecordList[$i]["name"]."<br>";
$ParameterArray["record_id"]=$RecordList[$i]["records"];
$ParameterArray["sub_domain"]=$RecordList[$i]["name"];
RunPost($Url,GetParameterStr($ParameterArray));
}
?>


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值