当前位置:   article > 正文

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

群晖 子域名转接口
  1. <!--
  2. 注释:DnsPod.com域名解析接口封装(支持群晖DDNS接口)
  3. 作者:豌豆豆
  4. 邮箱:613520823@qq.com
  5. -->
  6. <!-- 这里是群晖的设置连接需要的地址,也可以浏览器里手动请求,需要把192.168.10.2改成自己的服务器地址
  7. 需要在服务器PHP开启Curl支持
  8. http://192.168.10.2/DDNS_DNSPOD_UpDate.php?UserName=__USERNAME__&PassWord=__PASSWORD__&HostName=__HOSTNAME__&IpAddress=__MYIP__ -->
  9. <?php
  10. //post请求
  11. function RunPost($Url, $PostParameter){
  12. $curl = curl_init(); // 启动一个CURL会话
  13. curl_setopt($curl, CURLOPT_URL,$Url); // 要访问的地址
  14. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
  15. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
  16. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
  17. curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
  18. curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
  19. curl_setopt($curl, CURLOPT_POSTFIELDS, $PostParameter); // Post提交的数据包
  20. curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
  21. curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
  22. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
  23. $tmpInfo = curl_exec($curl); // 执行操作
  24. if (curl_errno($curl)) {
  25. echo 'Errno'.curl_error($curl); //捕抓异常
  26. curl_close($curl); // 关闭CURL会话
  27. header('HTTP/1.1 412 Not Found');
  28. echo "请检查参数配置,或联系作者!";
  29. exie();
  30. }
  31. curl_close($curl); // 关闭CURL会话
  32. return $tmpInfo; // 返回数据,json格式
  33. }
  34. //拼接Post字符串
  35. function GetParameterStr($ParameterArray){
  36. ksort($ParameterArray);
  37. $returnStr="";
  38. foreach ($ParameterArray as $key=>$value)
  39. {
  40. $returnStr .= $key;
  41. $returnStr .= "=";
  42. $returnStr .= $value;
  43. $returnStr .= "&";
  44. }
  45. unset($key, $value);
  46. $returnStr = substr($returnStr,0,strlen($returnStr)-1);
  47. return $returnStr;
  48. }
  49. //获取群晖传递过来的参数
  50. $UUserName=$_GET["UserName"];
  51. $UPassWord=$_GET["PassWord"];
  52. $UHostName=$_GET["HostName"];
  53. $UIpAddress=$_GET["IpAddress"];
  54. //赋值参数
  55. $Url="";
  56. $login_token=$UUserName.",".$UPassWord;
  57. $format="json";
  58. $domain=$UHostName;
  59. $record_id="0";
  60. $value=$UIpAddress;
  61. $record_type="A";
  62. $record_line_id="0";
  63. $sub_domain="";
  64. //参数数组
  65. $ParameterArray=array(
  66. "login_token"=>$login_token,
  67. "format"=>"json",
  68. "domain"=>$domain,
  69. "record_id"=>$record_id,
  70. "value"=>$value,
  71. "record_type"=>$record_type,
  72. "record_line_id"=>$record_line_id,
  73. "sub_domain"=>$sub_domain
  74. );
  75. $RecordList = array();
  76. //更换接口为记录列表接口
  77. $Url="https://dnsapi.cn/Record.List";
  78. $PostReturnInfo=RunPost($Url,"login_token=".$login_token."&"."domain=".$domain."&"."format=".$format);
  79. $de_json = json_decode($PostReturnInfo,TRUE);
  80. if ($de_json["status"]["code"]==1){
  81. for ($i = 0,$j = 0; $i < count($de_json["records"]); $i++)
  82. {
  83. //这里进行记录类型的过滤,需要添加的新记录类型的请自行添加,参数也请自行添加
  84. if ($de_json["records"][$i]["type"] == "A"){
  85. $RecordArrayTmp["records"] = $de_json["records"][$i]["id"];
  86. $RecordArrayTmp["name"] = $de_json["records"][$i]["name"];
  87. $RecordList[$j]=$RecordArrayTmp;
  88. $j++;
  89. }
  90. }
  91. }
  92. // 目前群晖回自己判断,手动判断ip地址是否变化,有时间了在写
  93. // 更换接口为记录修改接口
  94. $Url="https://dnsapi.cn/Record.Modify";
  95. for($i = 0 ;$i < count($RecordList);$i++){
  96. echo $RecordList[$i]["records"]."-----";
  97. echo $RecordList[$i]["name"]."<br>";
  98. $ParameterArray["record_id"]=$RecordList[$i]["records"];
  99. $ParameterArray["sub_domain"]=$RecordList[$i]["name"];
  100. RunPost($Url,GetParameterStr($ParameterArray));
  101. }
  102. ?>


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/889228
推荐阅读
相关标签
  

闽ICP备14008679号