geoip-db 2013.05
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +16 -0
- data/README.md +32 -0
- data/Rakefile +26 -0
- data/geoip-db.gemspec +21 -0
- data/lib/geoip-db.rb +12 -0
- metadata +77 -0
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
data/GeoLiteCity.dat
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
data/README.md
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
# GeoIP::DB
|
2
|
+
|
3
|
+
Combining the geoip gem and the database from MaxMind, this gem offers IP Geolocation in an easy to deploy package.
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
require 'geoip-db'
|
9
|
+
|
10
|
+
geoip = GeoIP::DB.instance
|
11
|
+
geoip.city('github.com')
|
12
|
+
#=> ["github.com", "207.97.227.239", "US", "USA", "United States", "NA", "CA", "San Francisco", "94110", 37.7484, -122.4156, 807, 415, "America/Los_Angeles"]
|
13
|
+
```
|
14
|
+
|
15
|
+
`GeoIP::DB.instance` returns an instance of `GeoIP` initialized with a copy of the city database. See
|
16
|
+
[geoip](https://github.com/cjheath/geoip) for further usage.
|
17
|
+
|
18
|
+
|
19
|
+
## Packaging
|
20
|
+
|
21
|
+
1. `rake update_database`
|
22
|
+
2. Update gemspec
|
23
|
+
3. `gem build geoip-db.gemspec`
|
24
|
+
|
25
|
+
## Versioning
|
26
|
+
|
27
|
+
The version represents the year and month that the database was updated. Maxmind updates the database on the first
|
28
|
+
Tuesday of each month.
|
29
|
+
|
30
|
+
---
|
31
|
+
|
32
|
+
This product includes GeoLite data created by MaxMind, available from [http://www.maxmind.com](http://www.maxmind.com).
|
data/Rakefile
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'uri'
|
2
|
+
require 'net/http'
|
3
|
+
require 'zlib'
|
4
|
+
|
5
|
+
require_relative 'lib/geoip-db'
|
6
|
+
|
7
|
+
GZIP_WBITS = (Zlib::MAX_WBITS + 32)
|
8
|
+
|
9
|
+
task :update_database do
|
10
|
+
url = GeoIP::DB::URL
|
11
|
+
|
12
|
+
Net::HTTP.start(url.host, url.port) do |http|
|
13
|
+
request = Net::HTTP::Get.new(url.to_s)
|
14
|
+
zlib = Zlib::Inflate.new(GZIP_WBITS)
|
15
|
+
|
16
|
+
File.open(GeoIP::DB::PATH, 'w+') do |out|
|
17
|
+
http.request(request) do |response|
|
18
|
+
response.read_body do |body_chunk|
|
19
|
+
out << zlib.inflate(body_chunk)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
zlib.finish
|
25
|
+
end
|
26
|
+
end
|
data/geoip-db.gemspec
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
# required
|
3
|
+
s.name = "geoip-db"
|
4
|
+
s.version = '2013.05'
|
5
|
+
s.date = '2013-05-08'
|
6
|
+
s.summary = "Packaged IP Geolocation Database. This product includes GeoLite data created by MaxMind, available from http://www.maxmind.com."
|
7
|
+
s.files = [*`git ls-files`.split, *Dir['data/*']]
|
8
|
+
|
9
|
+
# optional
|
10
|
+
s.description = <<-EOS
|
11
|
+
Combining the geoip gem and the database from MaxMind, this gem offers IP Geolocation in an easy to deploy package.
|
12
|
+
|
13
|
+
This product includes GeoLite data created by MaxMind, available from http://www.maxmind.com."
|
14
|
+
EOS
|
15
|
+
s.license = 'MIT'
|
16
|
+
s.author = 'TJ Singleton'
|
17
|
+
s.email = 'tjsingleton@me.com'
|
18
|
+
s.homepage = 'https://github.com/tjsingleton/geoip-db'
|
19
|
+
|
20
|
+
s.add_dependency 'geoip'
|
21
|
+
end
|
data/lib/geoip-db.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'geoip'
|
2
|
+
|
3
|
+
class GeoIP
|
4
|
+
module DB
|
5
|
+
URL = URI.parse('http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz')
|
6
|
+
PATH = File.expand_path(File.join(File.dirname(__FILE__), '..', 'data', 'GeoLiteCity.dat'))
|
7
|
+
|
8
|
+
def self.instance
|
9
|
+
Thread.current[:geoip] ||= GeoIP.new(PATH)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
metadata
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: geoip-db
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: '2013.05'
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- TJ Singleton
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-05-08 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: geoip
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
requirement: !ruby/object:Gem::Requirement
|
23
|
+
none: false
|
24
|
+
requirements:
|
25
|
+
- - ! '>='
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
28
|
+
type: :runtime
|
29
|
+
prerelease: false
|
30
|
+
description: ! 'Combining the geoip gem and the database from MaxMind, this gem offers
|
31
|
+
IP Geolocation in an easy to deploy package.
|
32
|
+
|
33
|
+
|
34
|
+
This product includes GeoLite data created by MaxMind, available from http://www.maxmind.com."
|
35
|
+
|
36
|
+
'
|
37
|
+
email: tjsingleton@me.com
|
38
|
+
executables: []
|
39
|
+
extensions: []
|
40
|
+
extra_rdoc_files: []
|
41
|
+
files:
|
42
|
+
- .gitignore
|
43
|
+
- Gemfile
|
44
|
+
- Gemfile.lock
|
45
|
+
- README.md
|
46
|
+
- Rakefile
|
47
|
+
- geoip-db.gemspec
|
48
|
+
- lib/geoip-db.rb
|
49
|
+
- data/GeoLiteCity.dat
|
50
|
+
homepage: https://github.com/tjsingleton/geoip-db
|
51
|
+
licenses:
|
52
|
+
- MIT
|
53
|
+
post_install_message:
|
54
|
+
rdoc_options: []
|
55
|
+
require_paths:
|
56
|
+
- lib
|
57
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
64
|
+
none: false
|
65
|
+
requirements:
|
66
|
+
- - ! '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
requirements: []
|
70
|
+
rubyforge_project:
|
71
|
+
rubygems_version: 1.8.25
|
72
|
+
signing_key:
|
73
|
+
specification_version: 3
|
74
|
+
summary: Packaged IP Geolocation Database. This product includes GeoLite data created
|
75
|
+
by MaxMind, available from http://www.maxmind.com.
|
76
|
+
test_files: []
|
77
|
+
has_rdoc:
|