花生壳更新ip

检测IP变化
要确定客户端是否应该更新,它必须有一个可靠的方式来确定当前的IP地址是什么,以便比较最后一次更新的地址。以下有两种方式。

直接连接
客户端自行判断并获取其连接到互联网的公网IP地址。

网站IP检测
通过网站IP检测的方式,获取当前机器公网IP地址。

Oray DDNS提供CheckIP的服务,可通过下面地址检测: http://ddns.oray.com/checkip

更新协议
当客户端发现IP地址变化或是用户修改设置时,客户端应该进行更新。
所有的更新都基本于标准的HTTP请求发送。
服务器会传回一个返回代码,客户端需要解析。

HTTP请求
主机名:ddns.oray.com

HTTP端口:80

HTTPS 端口:443

请求支持HTTP和基于SSL的HTTPS协议(HTTPS需要付费用户才能使用)
所有客户端必须发送一个完整的User-Agent文件头,用于区分不同的设备,空值或非法参数将导致请求失败。

例子
1.使用URL验证
适用于浏览器或应用程序(fetch, curl, lwp-request),可以在URL中包含验证信息。

http://username:[email protected]/ph/update?hostname=yourhostname&myip=ipaddress

2.原始HTTP GET请求
实际的HTTP请求,类似下面的代码。
其中 base-64-authorization 请使用 Base64 加密 username:password 后的字符替换。

GET /ph/update?hostname=yourhostname&myip=ipaddress HTTP/1.0
Host: ddns.oray.com
Authorization: Basic base-64-authorization
User-Agent: Oray
HTTP/1.0
Host: ddns.oray.com
Authorization: Basic base-64-authorization
User-Agent: Oray

请注意必须使用GET请求,POST是不被允许的。

.将命令加入到crontab 让每5分钟更新一次IP地址, 当然这个时间可以自己修改

加入crontab内容

*/5 * * * * curl -X GET "http://ddns.oray.com/ph/update?hostname=abc.oicp.net&myip=ipaddress" -H "Host: ddns.oray.com" -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "User-Agent: Oray" >> /home/dns.log

加入方法 , 输入crontab -e然后将这个粘贴进去就OK了。

更新参数
目前仅允许提交以下参数

参数 说明
hostname 需要更新的域名,此域名必须是开通花生壳服务。多个域名使用,分隔,默认为空,则更新护照下所有激活的域名。例:hostname=test.oray.com,customtest.oray.com
myip 需要更新的IP地址,可以不填。如果不指定,则由服务器获取到的IP地址为准。
返回代码
代码列表
参数 说明
good 更新成功,域名的IP地址已经更新,同时会返回本次更新成功的IP,用空格隔开,如:good 1.2.3.4
nochg 更新成功,但没有改变IP。一般这种情况为本次提交的IP跟上一次的一样
notfqdn 未有激活花生壳的域名
nohost 域名不存在或未激活花生壳
nochg 更新成功,但没有改变IP。一般这种情况为本次提交的IP跟上一次的一样
abuse 请求失败,频繁请求或验证失败时会出现
!donator 表示此功能需要付费用户才能使用,如https
911 系统错误

点赞

发表回复