
自制了一个 Laravel 的 DDNS 工具, 利用 DNSPod 的 API 实现了 DDNS,可以用来代替花生壳之类的软件。
composer require seekerliu/laravel-ddns:dev-master 注册 DNSPod 账户,并获取 ID TOKEN,方法请参考: https://support.dnspod.cn/Kb/showarticle/tsid/227/
你的服务器上需要需要开启 Laravel 调度计划:
Linux:
$ crontab -e //添加下列一行: * * * * * /path-to-php/php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1 MacOS 可以在 Terminal 中使用下面命令临时代替,Ctrl + C 可终止:
while true; do php artisan schedule:run; sleep 60; done Laravel 5.5 中有
Package Discover功能,故无需进行第 1 步。如未起作用,可手动执行php artisan package:discover命令。
config/app.php 中添加此行: 'providers' => [ //... Seekerliu\DynamicDns\ServiceProvider::class, ], .env 文件中:DDNS_DNSPOD_ID= DDNS_DNSPOD_TOKEN= DDNS_DOMAIN= DDNS_SUB_DOMAIN= DDNS_DNSPOD_UA="Laravel DDNS Client/0.0.1 ([email protected])" DDNS_DNSPOD_URI=https://dnsapi.cn/ DDNS_GET_IP_URI=https://seekerliu.com/getip.php DDNS_ENABLE_LOG=true .env 文件:# 你的 DNSPOD ID,必填 DDNS_DNSPOD_ID= # 你的 DNSPOD TOKEN,必填 DDNS_DNSPOD_TOKEN= # 你在 DNSPOD 解析的根域名,例如: seekerliu.com ,必填 DDNS_DOMAIN= # 你在 DNSPOD 解析的二级域名,例如:blog,必填 DDNS_SUB_DOMAIN= # 访问 DNSPOD API 需要的 UA,不用改 DDNS_DNSPOD_UA="Laravel DDNS Client/0.0.1 ([email protected])" # DNSPOD API URI,不用改 DDNS_DNSPOD_URI=https://dnsapi.cn/ # 获取 json 格式的公网 ip,可以换成自己的,源码在 getip.php 中 DDNS_GET_IP_URI=https://seekerliu.com/getip.php # 是否开启日志 DDNS_ENABLE_LOG=true 1 bazingaterry 2017-09-30 02:11:06 +08:00 via iPhone 杀鸡用原子弹? |
2 ioREQcom 2017-09-30 02:38:03 +08:00 最烦这种一看了 laravel 就上来分享,以为自己很牛逼的人了,看我怎么一行 shell 代码搞定,专治吹牛逼的 http://icms.factj.com/article.php?id=2352 |
3 ioREQcom 2017-09-30 02:42:58 +08:00 还有这个写的也不错 http://www.anrip.com/post/872 |
4 airycanon 2017-09-30 08:41:22 +08:00 楼上说出了我的心声。 |
5 cappuccinos 2017-09-30 08:44:59 +08:00 via iPhone 不错。 |
6 ihciah 2017-09-30 09:22:25 +08:00 借楼打广告: https://github.com/ihciah/simple-ddns (如果并发不算大&&不打算用第三方服务... |
7 simaguo 2017-09-30 12:11:05 +08:00 DDNS 是什么,用来解决什么具体问题?小白不懂求轻拍 |
9 seekerliu OP @bazingaterry 也不算原子弹了~ 以前做过一个 composer 的 package,这次改装成 Laravel 专用的一个。对于我这种用 Laravel 做的项目,需要 DDNS 的时候,只需一个命令 composer require ... 就解决了问题,不用再配置别的了 |
11 seekerliu OP @simaguo 就是动态域名解析,比如家里的宽带 IP 经常变化,那么可以用一些软件监测自家 IP 的变化,如果变了,就把新 IP 解析到指定的域名上。 |
12 seekerliu OP @bazingaterry 所以,不是说做 DDNS 需要用到 Laravel,而是给 Laravel 应用提供的一个 DDNS 工具。 |
13 bazingaterry 2017-10-01 14:20:04 +08:00 via iPhone @seekerliu 原来如此,是我误会了,见谅。 |
14 seekerliu OP @ioREQcom 不知道你有没有真正用过 DNSPod,请求 API 的时候,DNSPod 要求使用指定格式的 UA。你的代码里可没有,代码用不了。 |
15 seekerliu OP @ioREQcom 另外 DNSPod 的更新域名 IP 这个 API 是有请求次数限制的,不做缓存,一会儿就 500 了。所以我的 package 里加了解析列表缓存,只有自己 IP 有变动的时候才去更新。curl 谁不会用。 |
16 seekerliu OP @bazingaterry 怪我怪我~ 正文没写清楚。 |
18 seekerliu OP @cappuccinos 谢谢~ |
19 rekey 2017-10-02 01:26:39 +08:00 宽带通这种没有公网 ip 的解决一发??? |