GScan:一个Google HTTPS IP可用性扫描工具

前几天接触了解websocket时,顺便试了下之前写过的代理工具gsnova,发现几乎不能用了,究其原因,则是Google的IP大批被封锁,但仍有部分可用的IP,不过需要自行查找测试,手工测试比较繁琐;有一个GoGoTester工具做了自动化搜索测试的工作,内置了大量的IP,很不错。不过还有一些缺陷,比如缺少证书检测,性能上也需要优化,默认只启动5个线程?

另外有一些Hosts工具,比如smarthosts, 最近可能也多是Google的IP被封锁原因,加上Google自身的部署调整,很多IP有问题,比如默认的google搜索访问就有404的问题,看了下smarthosts生成hosts的脚本,也是在可访问性上检测不够,只检测了是否能连接,对404之类错误则没有任何检测

对于此类的工具,我另外还有自己的一些想法,所以国庆花了两天时间粗略实现了一个基于IP段的扫描工具gscan,整合实现这两类功能,顺便也熟悉下来近两年没碰过的golang。

完成后测试了下实际使用效果,看起来还不错,Go的性能这两年看起来提升不少,用GoGoTester内置的所有IP段随机扫描可用HTTPS的Google IP, 100个goroutine工作,ThinkPad X230笔记本上大约平均每秒能扫描100个IP上下,内存占用不到10M,CPU占用15%上下。

gscan的相关说明在github上, 地址https://github.com/yinqiwen/gscan

后记:golang这两年语法没什么变化,看了下go的release notes, 大部分还是库,GC,编译器层面的改进, 周边的IDE工具(开源、商业)支持还是不多, GoClipse一如既往的难用。 另外发现一条新闻说是Go在1.4会官方支持Android开发,这个比较令人兴奋,也许可以把gsnova移植到Android上。