geoip_city 0.1 → 0.1.2
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/README +9 -15
- data/Rakefile +5 -1
- data/geoip_city.c +2 -0
- data/test.rb +6 -0
- metadata +2 -2
data/README
CHANGED
@@ -7,7 +7,13 @@ Actually this is only a Ruby binding to a C library which provides this
|
|
7
7
|
function. Also, you must download a large binary database with all this
|
8
8
|
mapping information. It is kindly provided free of charge by MaxMind.com.
|
9
9
|
|
10
|
-
=
|
10
|
+
= Usage
|
11
|
+
require 'geoip_city'
|
12
|
+
db = GeoIPCity::Database.new('/opt/GeoIP/share/GeoIP/GeoLiteCity.dat')
|
13
|
+
result = db.look_up('24.24.24.24')
|
14
|
+
puts result.inspect
|
15
|
+
|
16
|
+
= Install
|
11
17
|
Some variation of the following should work.
|
12
18
|
|
13
19
|
1. Install the GeoCity C library. You can get it from here
|
@@ -19,16 +25,8 @@ Some variation of the following should work.
|
|
19
25
|
./configure --prefix=/opt/GeoIP
|
20
26
|
make && sudo make install
|
21
27
|
|
22
|
-
2. Now install the
|
23
|
-
|
24
|
-
Hint: You need to make sure that gcc can find the GeoIP header and library
|
25
|
-
files. One way to do this is to ensure that your CPATH and LIBRARY_PATH
|
26
|
-
enviromental variables include the GeoIP directory. So, if you want, do
|
27
|
-
this:
|
28
|
-
export CPATH="/opt/GeoIP/include:$CPATH"
|
29
|
-
export LIBRARY_PATH="/opt/GeoIP/lib:$LIBRARY_PATH"
|
30
|
-
sudo gem install geoip_city
|
31
|
-
|
28
|
+
2. Now install the geoip_city gem
|
29
|
+
sudo gem install geoip_city -- --with-geoip-dir=/opt/GeoIP
|
32
30
|
|
33
31
|
3. Download the GeoLite City database file in binary format from:
|
34
32
|
http://www.maxmind.com/app/geolitecity
|
@@ -39,10 +37,6 @@ Some variation of the following should work.
|
|
39
37
|
|
40
38
|
|
41
39
|
4. Use it!
|
42
|
-
require 'geoip'
|
43
|
-
db = GeoIP::Database.new('/opt/GeoIP/share/GeoIP/GeoLiteCity.dat')
|
44
|
-
result = db.look_up('24.24.24.24')
|
45
|
-
puts result.inspect
|
46
40
|
|
47
41
|
= License
|
48
42
|
Copyright (C) 2007 Ryan Dahl (ry@tinyclouds.org)
|
data/Rakefile
CHANGED
@@ -24,7 +24,7 @@ spec = Gem::Specification.new do |s|
|
|
24
24
|
s.name = 'geoip_city'
|
25
25
|
s.author = 'ry dahl'
|
26
26
|
s.email = 'ry@tinyclouds.org'
|
27
|
-
s.version = "0.1"
|
27
|
+
s.version = "0.1.2"
|
28
28
|
s.summary = "A Binding to the GeoIP C library"
|
29
29
|
s.homepage = "http://geoip_city.rubyforge.org"
|
30
30
|
s.files = FileList['Rakefile', '*.rb', '*.c', 'README*']
|
@@ -41,3 +41,7 @@ end
|
|
41
41
|
desc 'compile the extension'
|
42
42
|
task(:compile => 'Makefile') { sh 'make' }
|
43
43
|
file('Makefile' => "geoip_city.c") { ruby 'extconf.rb' }
|
44
|
+
|
45
|
+
task(:webpage) do
|
46
|
+
sh 'scp -r doc/* rydahl@rubyforge.org:/var/www/gforge-projects/geoip-city/'
|
47
|
+
end
|
data/geoip_city.c
CHANGED
@@ -18,6 +18,8 @@ VALUE rb_geoip_new(VALUE self, VALUE filename) {
|
|
18
18
|
if(gi = GeoIP_open(STR2CSTR(filename), GEOIP_MEMORY_CACHE)) {
|
19
19
|
database = Data_Wrap_Struct(cDB, 0, GeoIP_delete, gi);
|
20
20
|
rb_obj_call_init(database, 0, 0);
|
21
|
+
} else {
|
22
|
+
rb_sys_fail("Problem opening database");
|
21
23
|
}
|
22
24
|
return database;
|
23
25
|
}
|
data/test.rb
CHANGED
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: geoip_city
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version:
|
7
|
-
date: 2007-
|
6
|
+
version: 0.1.2
|
7
|
+
date: 2007-12-09 00:00:00 -08:00
|
8
8
|
summary: A Binding to the GeoIP C library
|
9
9
|
require_paths:
|
10
10
|
- .
|