这里是记录如何通过PHP来更新Namesilo里面的域名解析,实现自动动态更新。

首先当然你得有Namesilo的域名并且添加过解析了,怎么申请和添加解析就不去讲了,网上多的是。

Namesilo官网:https://www.namesilo.com/

然后,是申请APIkey,登录账号后,在“My account”里面找到"api manager",进入后,勾选最底下选项后点击"Generate",就能生成APIkey了,复制保存好。

下面就是在服务器上新建一个php文件,把下面代码放进去,更改成你的内容后,保存

<?php //修改后面的APIKEY,域名和子域名前缀即可$ipnow = ipnow(); //获取服务器公网IPif($ipnow == null || $ipnow == ''){   //判断是否获取成功公网IPecho 'IP获取失败,稍后再试';  }else{if(!file_exists(("ipfile.txt")) || filesize("ipfile.txt") ==0){  //判断ip暂存文件是否存在或者是空文件$ipfile = fopen("ipfile.txt", "w") or die("Unable to open file!");fwrite($ipfile, $ipnow);   //将当前服务器IP写入临时文件,用于后续判断是否更改fclose($ipfile);echo updatedns($ipnow);}else{$ipfile = fopen("ipfile.txt", "r") or die("Unable to open file!");$iprecord = fread($ipfile,filesize("ipfile.txt"));    //获取ip暂存文件内记录的ip//echo $iprecord;if($iprecord == $ipnow){  //如果当前IP与记录的一致时,就不执行更新echo '现在服务器IP为:'.$iprecord.',没有改变,无需更新!';fclose($ipfile);}else{  //反之,更新解析中的ip$ipfile = fopen("ipfile.txt", "w") or die("Unable to open file!");echo updatedns($ipnow);fwrite($ipfile, $ipnow);fclose($ipfile);}}}function updatedns($ipnow){$APIkey = "这里换成你的APIKEY"; //你的namesilo apikey$domain = "这里放根域名,前面不要加www等前缀,比如baidu.com"; //需要更新的域名$rrhosts = ['www','img'];  //需要更新的子域名前缀数组,在方括号里用英文引号和逗号分隔$record = "dyn";  //不用改$rrttl = 3600;  //不用改$results = simplexml_load_string(file_get_contents('https://www.namesilo.com/api/dnsListRecords?version=1&type=xml&key='.$APIkey.'&domain='.$domain));   //通过apikey获取到当前域名下面所有解析清单$test = json_decode(json_encode($results),true);  //把获取到的数据转变成数组$resource_record = $test['reply']['resource_record'];  //筛选只获取解析记录清单数组$record_ids = [];for($i=0;$i<count($resource_record);$i++){   $record_ids[$resource_record[$i]['host']] = $resource_record[$i]['record_id']; //重新拼接变成新数组:[子域名]=>[record_id]}//下面就是循环更新每个子域名解析for($ii=0;$ii<count($rrhosts);$ii++){$subdomain = $rrhosts[$ii].'.'.$domain;  //拼接成子域名$recordid = $record_ids[$subdomain];  //获取当前子域名的record_id$rrhost = $rrhosts[$ii];return httpGet('https://www.namesilo.com/api/dnsUpdateRecord?version=1&type=xml&key='.$APIkey.'&domain='.$domain.'&rrid='.$recordid.'&rrhost='.$rrhost.'&rrvalue='.$ipnow.'&rrttl='.$rrttl);}}//获取服务器公网IPfunction ipnow(){$ipnow = httpGet("http://httpbin.org/ip");  //这个网址是获取服务器IP用的,可以更换成其他的接口$ipnow = json_decode($ipnow,true);return $ipnow['origin'];}//curl方法function httpGet($url){$curl = curl_init();curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_TIMEOUT, 500);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_HTTPHEADER, Array("Content-Type:text/xml; charset=utf-8"));$res = curl_exec($curl);curl_close($curl);return $res;}?>

最后,通过访问这个PHP文件,就能实现更新解析的功能啦。比如可以通过宝塔面板里的计划任务,设置定时访问url来自动执行。

使用PHP实现Namesilo动态解析DDNS相关推荐

  1. fetchtype 动态控制_RouterOS利用aliyun的API接口实现DDNS动态解析

    本文主要讲解如何借助阿里云aliyun的云解析API接口来实现RouterOS(以下简称ROS)的DDNS动态解析. 一.创建访问控制RAM的AccessKey 我这边简单的讲讲如何申请开通: 1.阿 ...

  2. python3实现阿里云DDNS域名动态解析

    一. 前言 家里部署了一台NAS服务器,在公司平时都是通过IP访问的,现在想更改为用域名去访问,但是家里的宽带都是动态的公网IP,每次IP变了都需要手动解析一次域名,这样就比较麻烦,那怎么办了?这个时 ...

  3. linux ipv6动态解析,家庭宽带ipv6搭建外网访问方案,ddns动态解析ipv6,ipv6建站等

    注意:ipv6和ipv4之间不可互相访问!!! 如题: 1.先确认我们本地是否有公网ipv6地址 Windows查看方法:打开cmd.输入ipconfig 看到有2开头的就是公网ipv6了 linux ...

  4. ddns 动态解析 - 阿里云api自动解析家用服务器动态ip

    2019独角兽企业重金招聘Python工程师标准>>> 过年回老家办了带宽,大家都知道家用带宽是没有固定ip的一般使用花生壳之类的动态解析域名: 但是花生壳现在不好用,我使用阿里云a ...

  5. DNS(四)DDNS动态解析的配置

    一.DNS的动态解析 DNS+DHCP=DDNS 服务端搭建 DHCP 配置文件内容 注意:DHCP 更新DNS时,必须要实现DNS的加密更改. 做好配置后重启DNS和DHCP服务

  6. RouterOS利用aliyun的API接口实现DDNS动态解析

    本文主要讲解如何借助阿里云aliyun的云解析API接口来实现RouterOS(以下简称ROS)的DDNS动态解析. 一.创建访问控制RAM的AccessKey 我这边简单的讲讲如何申请开通: 1.阿 ...

  7. 利用NAS免费部署动态解析实现内网穿透

    ‍ 想要从外网访问家中的NAS等设备,一般来说我们需要知道家中路由器的公网IP. 现在固定的公网IP基本上很难免费申请到了,但是一般来说运营商可以免费提供一个动态变化的公网IP:当路由设备重启时,运营 ...

  8. DNS部署之动态域名解析DDNS

    DNS部署之动态域名解析DDNS dns+dhcp=ddns=动态域名解析=花生壳 DDNS: DDNS:之前的远程更新是基于静态网络做的,但是如果我们用动态网络获取ip,dns就不能及时更新到ip的 ...

  9. NAT-DDNS内网穿透技术,快解析DDNS的优势

    进行 NAT 穿透,是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机.对于穿透类型,一般分为两大类,一是基础NAT,另一个是NAPT,大家可能并不怎么了 ...

  10. 开机自动拨号,断线重连,并且动态解析dns记录,java版

    上一篇文章讲到:开机自动拨号与DDNS 它的实现方式是win10自带的批处理文件,但在我使用的过程中发现,这个批处理文件有些时候会失效,因为在那个批处理文件是以异常的产生才执行对应操作,但在使用的过程 ...

最新文章

  1. VSCode环境下配置ESLint 对Vue单文件的检测
  2. 《深入理解Hadoop(原书第2版)》——1.3大数据的编程模型
  3. Java NIO 学习笔记(三)----Selector
  4. string和C语言字符串之间的相互转换以及string常用函数
  5. python删除空白没有显示_删除Python字符串中的空白
  6. c程序设计语言选修难吗,欢迎大家选修C语言程序设计这门课,本帖解释一下一些常见的问题...
  7. python-3.8.0 新特性之赋值表达式
  8. 靠能力赚大钱,是最最可笑的谎言
  9. 56 - II. 数组中数字出现的次数 II
  10. 【算法】斐波那契(黄金分割法) 查找算法
  11. python数学实验与建模_Python数学
  12. 舆情监测平台TOOM
  13. Ubuntu 安装 peek 动态截图软件
  14. java 弹出软键盘_android软键盘弹出定位
  15. Windows远程桌面无法最大化问题
  16. 数据库---数据库恢复技术
  17. 如何给word 文章的每段段尾添加 脚注
  18. 阿里在职7年高级测试工程师整理出的软件测试自学指南
  19. 谈一谈“读万卷书,行万里路”
  20. [本地调试]Error: errCode: 40013 | errMsg: invalid appid, rid: 6229ba44-300699c6-69a0065e

热门文章

  1. Jenkins——Jenkins+harbor+gitlab(git) 部署maven项目
  2. 从盘古开天辟地说起JVM性能调优
  3. 【情感分析:挖掘观点、情感和情绪】读书笔记-01
  4. 二维码图片生成(带文字显示)
  5. 紫罗兰计算机音乐,【Animenz】紫罗兰永恒花园ed みちしるべ
  6. Azure实现虚拟机的自动开关机
  7. 笔记本共享网络给台式机
  8. 帝国cms tag生成html,帝国CMS TAG标签伪静态化
  9. 三星S8 隐藏Android功能键,三星S8获系统更新 新增虚拟按键隐藏功能
  10. 幸福家庭杂志幸福家庭杂志社幸福家庭教育部2022年第1期目录