锁定老帖子 主题:IPParse: IP 地址查询
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-17
$ ipparse 218.58.88.175 212.1.1.1 192.245.148.0 116.254.254.0 218.58.88.175 => 山东省青岛市开发区 212.1.1.1 => 意大利 192.245.148.0 => 阿尔及利亚 116.254.254.0 => 广东省广州市 2)程序中: require ‘rubygems’ require ‘ipparse’ IPParse.parse(‘218.58.88.175’) # => 山东省青岛市开发区 有效代码30多行,使用了PHPWind的IP数据库(稍稍改了改格式,源码里提供了工具) 分析10000个随机IP 需要5秒左右的时间 地址:http://github.com/wosmvp/ipparse/tree/master 安装:(申请了RubyForge ipparse 目前还没有审核) $ git clone git://github.com/wosmvp/ipparse.git $ cd ipparse $ rake install (可能需要安装 echoe ) ------ http://www.zhangjinzhu.com 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-02-18
昨天版本10万随机IP时间为 52.5233330726624 秒
今天版本10万随机IP时间为 28.3033330440521秒 速度提升 46.1 % ! 安装: $ sudo gem install ipparse |
|
返回顶楼 | |
发表时间:2009-02-18
现在的IP数据库是文本的, 能否换成 "IP数据库 纯真版"的呢?
|
|
返回顶楼 | |
发表时间:2009-02-18
免费测试一下 ,编码似乎有些问题 ,都显示不出来,是不是要检查一下当前系统的编码呢 ?
windowsxp 和 linux 都是 而且 linux 的 LANG=en_US.UTF-8 或者 zh_CN.utf8 都不成哦, 上图 , 仅供参考 :)
|
|
返回顶楼 | |
发表时间:2009-02-18
不见得 写道
免费测试一下 ,编码似乎有些问题 ,都显示不出来,是不是要检查一下当前系统的编码呢 ?
windowsxp 和 linux 都是 而且 linux 的 LANG=en_US.UTF-8 或者 zh_CN.utf8 都不成哦, 上图 , 仅供参考 :)
IP文本格式是UTF8的,GBK有乱码正常, UTF-8 乱码? 上张 Linux . UTF-8 乱码截图看看?
检查一下当前系统的编码,速度必然降低,写这个Gem开始是想用在web应用中,如果想用GBK编码,先下载PHPWind的GBK编码的ipdata文件,再使用lib目录下的convert_ip_format.rb转换格式(可能需要修改此文件,例如去掉dos2unix等),将它们复制到data目录就行
-------------- IP数据库 纯真版 ? 没试过,好像不可以在Linux中使用吧? |
|
返回顶楼 | |
发表时间:2009-02-18
最后修改:2009-02-18
http://read.pudn.com/downloads74/sourcecode/windows/file/268981/ip_searcher.rb__.htm
IP数据库 纯真版 是能在linux中使用的,上面的地址是刚找到的一段测试代码,将 def search_ip_cz(ip) 剥离出来便能正常在linux系统下正常使用了, http://lumaqq.linuxsir.org/article/qqwry_format_detail.html这篇文章是LumaQQ作者写的"纯真IP数据库格式详解" |
|
返回顶楼 | |
发表时间:2009-02-18
二分查找代码return dichotomizing(arg[0...cen],ip) if size != 1 && (arg[cen] > ip + '1')
这块好像有bug IPParse.parse('59.1.32.220')到最后就死循环 |
|
返回顶楼 | |
发表时间:2009-02-18
嗯 , 是我使用的问题 , 我终端都是 gbk的, 还得转那么一下 :
Iconv.conv('gbk','utf-8',IPParse.parse('218.58.88.175'))
貌似纯真的库数据量很大 http://www.cz88.net/
一个小建议:
def self.parse(ip , to = 'utf-8') haha , 这样我用着就更方便了
|
|
返回顶楼 | |
发表时间:2009-02-18
最后修改:2009-02-18
|
|
返回顶楼 | |
发表时间:2009-02-19
orlaa 写道 http://read.pudn.com/downloads74/sourcecode/windows/file/268981/ip_searcher.rb__.htm
IP数据库 纯真版 是能在linux中使用的,上面的地址是刚找到的一段测试代码,将 def search_ip_cz(ip) 剥离出来便能正常在linux系统下正常使用了, http://lumaqq.linuxsir.org/article/qqwry_format_detail.html这篇文章是LumaQQ作者写的"纯真IP数据库格式详解" 非文本修改起来比较麻烦……呵呵 |
|
返回顶楼 | |