其实dnspod官方有phpsdk,只是自己写的看起来好看一点。原来我用的是shell版的,但shell版的时候nc ns1.dnspod.net出来的IP老是不正确。估计是整个大楼里面有代理 。
但是我访问 http://iframe.ip138.com/ic.asp,里面出来的IP是真实IP,所以没办法,我只能改成PHP了(主要是因为不知道wget 或者 curl回来的文件怎么grep得到那个IP,好吧,我OUT了)
所以,花了5分钟写了个脚本。。。执行,没有报 任何错,好吧,原来是我没有输出。
输出的时候发现,不支持get方式提交。于是我偷了个懒,直接把file_get_contents用POST方式提交了。
OK,更新成功。但我发现,如果用Record.Ddns接口,那么,还是用的类似ns1.dnspod.net的探测方式,所以IP不准,最后,只能用Record.Modify接口来更新域名了。。
不多说废话,代码地址:https://github.com/neatstudio/yiiextension
用法也相当简单:
XML/HTML代码
- @description
- 其实这个程序是扔在命令行下的,最好是crontab。
- 因为远程获取IP地址比较耗时间
- @useage
- 在使用前最好chmod +x Dnspod.php
- 注意第一行#!/usr/bin/env php,当然你也可以去掉这一条,直接使用/xxx/xxx/php Dnspod.php
- crontab -e 后加入一条:
- */10 * * * * /xxx/xxx/Dnspod.php