返回顶部

收藏

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-04-18 01:54:00 ruby - 使用grape来写接口
  2. 博主 发表 2018-03-12 11:29:36 如何创建一个私有的Gem库
  3. techug 发表 2018-04-15 04:59:40 编程语言 Ruby 如何还能再活 25 年?
  4. 博主 发表 2018-04-13 02:12:00 ruby - rabbitmq, bunny 与 amqp 入门 快速入门, 1小时吧.
  5. 博主 发表 2018-04-13 08:18:00 ruby - 不错的密码生成工具: PassGen
  6. 博主 发表 2018-04-09 01:03:00 ruby - 一种新的写法 var.method1 &.method2 和 dig
  7. 博主 发表 2018-03-28 17:00:00 Ruby 2.2.10 Released
  8. 博主 发表 2018-03-28 17:00:00 Ruby 2.3.7 Released
  9. 博主 发表 2018-03-28 17:10:00 Ruby 2.4.4 Released
  10. 博主 发表 2018-03-28 17:20:00 Ruby 2.5.1 Released
  11. 博主 发表 2018-03-16 15:05:00 浮点数为什么算不准
  12. 博主 发表 2018-03-16 09:16:00 ruby - 字符串操作,填满0 : rjust fill with zero

发表评论