实现了利用GAE监控GHS IP在国内的可用性并且自动修改DNS设置
利用的道具有:
1) Google AppEngine ------ 用来部署监控程序
2) 利用了GAE的Cron Jobs ------ 实现定时监控的功能
3) 利用了GAE的Task Queues ------ 将需要扫描的可用IP推入队列 , 分散每次处理占用的CPU.
4) DNSPod 及其提供的最新的API(v1.5) ------ 一旦发现某IP可用性的变动, 通过API 新建/激活某个A记录 ,或者禁用某个A记录
5) 在国内找一个Web代理 ------ 此代理的IP一定要在国内,否则在GAE上监控始终是有效的,那就没有意义了
6) 尽可能收集全 所有的可用不可用的公共的GHS IP ,甚至包括私人通过反向代理架设GHS服务
7) 并且还实现利用GAE的邮件服务,进行GHS IP可用性变动的邮件通知功能.
从今往后再也不需要关注 GHS IP. (除非所有的公共 GHS IP 和 私人搭建的GHS IP 都不可用,但我会收到邮件通知的.)
并且还有一个附带的功效, 如果有多个可用IP, 而程序自动创建的都是A记录, 那么按DNSPod的文档说明知道, 顺带实现了负载均衡(DNS轮询机制)
2010-2-8补记: 目前从GAE无法访问www.dnspod.com ,我咨询了 DNSPod技术,对方告诉我没有封我的程序,并且从2月3号以来没有收到我请求. 我怀疑可能是 我们国家的大墙 封了 GAE对www.dnspod.com等网站的访问. 现在该程序已经无法使用了.
目前我已经用 C#重写了该程序,作为Windows服务 设置为开机自动运行在我电脑本地.
转载请注明:来自無處不在
本文地址:http://blog.chaoskey.com/2009/12/11/gaeghsipmonitoring

16 条评论
我要留言混沌 发表于 2010-06-09 at 21:41 回复 引用
给你发了两个版本的程序代码: Python GAE版 和 C#windows服务版
stbrine 发表于 2010-06-08 at 13:38 回复 引用
混沌 发表于 2010-05-12 at 12:16 回复 引用
gbate 发表于 2010-05-06 at 23:09 回复 引用
混沌 发表于 2010-02-08 at 09:01 回复 引用
barry 发表于 2010-02-04 at 21:57 回复 引用
怪我自己太着急,没有看API里其他几个功能。
不过还是想学习一下你的程序,有时间请发一份代码给我,谢谢!
混沌 发表于 2010-02-03 at 10:11 回复 引用
barry 发表于 2010-02-01 at 19:25 回复 引用
domain_id
和
record_id
是什么?我怎么知道我想更新的记录的domain_id和record_id
== 修改记录
URL: https://www.dnspod.com/API/Record.Modify
方法: POST
参数:
login_email - 用户帐号
login_password - 用户密码
format {json,xml} - 返回的数据格式,支持json和xml.
domain_id - 域名ID, 如 12345
record_id - 记录ID, 如 1234567
sub_domain - 主机记录, 如 www
record_type {'A','CNAME','MX','URL','NS','TXT','AAAA'} - 记录类型
record_line {'default', 'tel', 'cnc', 'edu', 'cmc', 'foreign'} - 记录线路依次为:默认、电信、网通、教育网、移动、国外(红字仅对VIP有效)
value - 记录值, 如 IP:200.200.200.200, CNAME: cname.dnspod.com., MX: mail.dnspod.com.
mx {1-20} - MX优先级, 当记录类型是 MX 时有效,范围1-20
ttl {1-604800} - TTL,范围1-604800
混沌 发表于 2010-01-11 at 17:03 回复 引用
目前的代码和其它项目中混在一起,等我有空时(估计明天或后天)整理出一份再发给你.
barry 发表于 2010-01-09 at 16:59 回复 引用
如果可以,请发到邮箱:barry1984@163.com,谢谢!
猪猪 发表于 2009-12-23 at 14:59 回复 引用
混沌 发表于 2009-12-23 at 14:40 回复 引用
猪猪 发表于 2009-12-22 at 22:55 回复 引用
混沌 发表于 2009-12-22 at 22:05 回复 引用
混沌 发表于 2009-12-22 at 21:58 回复 引用
猪猪 发表于 2009-12-22 at 21:34 回复 引用
Zhu8 发表于 2009-12-21 at 15:33 回复 引用
混沌 发表于 2009-12-21 at 15:27 回复 引用
Zhu8 发表于 2009-12-21 at 13:24 回复 引用