返回顶部

收藏

ruby 查询 QQwry.dat ip 库的 IpLocationSeeker 类

更多
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
#

require 'rubygems'
#gem install qqwry
require 'qqwry'

$fqqwry='qqwry.dat'
unless File.exist? $fqqwry
  d = File.dirname __FILE__
  $fqqwry = File.join d, $fqqwry
  unless File.exist? $fqqwry
    p $fqqwry + ' not found '
  end
end

class IpLocationSeeker
  def seek(ip) #查询IP
    unless File.exist? $fqqwry
      return ''
    end

    db = QQWry::Database.new $fqqwry
    r = db.query(ip)
    "#{r.country} #{r.area}"
  end
end
class String
  @@last_area ||={}
  def area
    if @@last_area.size > Time.now.year
      @@last_area.clear
    end
    if @@last_area.has_key? self
      return @@last_area[self]
    else
      @@last_area[self]= IpLocationSeeker.new.seek self
    end
    return @@last_area[self]
  end
end

if __FILE__ == $0
  if ARGV[0]
    p IpLocationSeeker.new.seek ARGV[0]
  else
    p IpLocationSeeker.new.seek '8.8.8.8'
  end
end

标签:ruby

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. 博主 发表 2018-07-14 09:46:00 ruby - 一些不错的gem工具,记录一下
  2. 博主 发表 2009-04-06 16:00:00 使用SVN+SSH同步Ruby On Rails代码的脚本
  3. 博主 发表 2014-01-08 14:38:53 Ruby on Rails 中使用 Markdown 语法,及代码高亮
  4. 博主 发表 2014-01-13 10:23:02 用 Nginx 和 Unicorn 部署 Ruby on Rails 应用
  5. 博主 发表 2018-06-19 00:26:00 ruby/rails - 根据浏览器的语言,来自动识别
  6. Alex Wood 发表 2014-10-15 13:06:29 Deploying Ruby on Rails Applications to AWS OpsWor
  7. Alex Wood 发表 2014-10-22 12:04:19 Caching the Rails Asset Pipeline with Amazon Cloud
  8. Trevor Rowe 发表 2014-11-18 19:04:17 Using Resources
  9. Trevor Rowe 发表 2014-11-20 19:04:22 Waiters
  10. Trevor Rowe 发表 2014-11-20 19:04:22 Waiters
  11. Trevor Rowe 发表 2014-11-26 19:04:20 Client Response Stubs
  12. Alex Wood 发表 2014-12-02 17:32:13 AWS re:Invent 2014 Ruby Recap

发表评论