Giter Site home page Giter Site logo

kuno / geoip Goto Github PK

View Code? Open in Web Editor NEW
415.0 23.0 129.0 6.3 MB

GeoIP binding for nodejs(>=0.10) and iojs

License: GNU Lesser General Public License v2.1

Makefile 0.37% JavaScript 55.63% CoffeeScript 7.11% Python 1.31% Shell 2.03% HTML 1.98% C++ 25.13% C 6.43%

geoip's Introduction

GeoIP binding for nodejs(>=0.10) and iojs

NPM version Build status Dependencies Status Bitdeli Badge

Get geolocation information based on domain or IP address.

Limitations

Since this module required to compile geoip c library during the installtion, due to the difficulty of compilifa this c library on windows, currenlty, this module can not be used on windows, yet.

I recommend that choosing a pure javascript implementation instead, node-geoip maybe your best candicate.

###Technical Architecture

new_architecture

###Memory leak issue As up to the version 0.4.7 (commit 22dadd98646f75318412b54b3de90cc079d34b1d), there will be some memory leak when new a object from GeoIP class.

Here is the report, I'll update it frequently.

Fortunately, the number of leaked bytes is not huge, and you wont new a object very offen.

If you are willing to fix this but, please fork this project.

###Need support special database? Corrently, this package supports the most common databases from MaxMind.

But, it still a lot of special databases out there.

Since I am not a user of any product/service of maxmind, if you require this pacakge to support special db, please make sure you can delivery the testing db and the ip address/domain that can be used to against the db.

##Installation

[sudo] npm install geoip [-g]

##Usage

See usage doc.

geoip's People

Contributors

artems avatar bernhardvalenti avatar bitdeli-chef avatar dankang avatar kkoopa avatar kuno avatar nfo avatar pwlmaciejewski avatar rockdog avatar rymai avatar sajal avatar sembiance avatar timoxley avatar wcummings avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

geoip's Issues

Installation fails on Mac OS 10.8

Mac OS 10.8.2
Homebrew 0.9.4
Xcode Version 4.6 (4H127)

libgeoip:
geoip: stable 1.4.8
Depends on: automake, libtool
/usr/local/Cellar/geoip/1.4.8 (23 files, 1.9M) *
https://github.com/mxcl/homebrew/commits/master/Library/Formula/geoip.rb

Step 1: Installed libgeoip via homebrew

brew install libgeoip

Step 2: Install geoip via npm

npm install geoip

Fails at:

npm ERR! `sh "-c" "node-gyp rebuild"` failed with 1

NPM log:

0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/Cellar/node/0.8.16/bin/node',
1 verbose cli '/usr/local/bin/npm',
1 verbose cli 'install',
1 verbose cli 'geoip' ]
2 info using [email protected]
3 info using [email protected]
4 verbose read json /usr/local/apps/jsonip/package.json
5 verbose read json /usr/local/apps/jsonip/node_modules/mongodb/package.json
6 verbose read json /usr/local/apps/jsonip/package.json
7 verbose cache add [ 'geoip', null ]
8 silly cache add name=undefined spec="geoip" args=["geoip",null]
9 verbose parsed url { pathname: 'geoip', path: 'geoip', href: 'geoip' }
10 silly lockFile bf279f7b-geoip geoip
11 verbose lock geoip /Users/geuis/.npm/bf279f7b-geoip.lock
12 silly lockFile bf279f7b-geoip geoip
13 verbose addNamed [ 'geoip', '' ]
14 verbose addNamed [ null, '' ]
15 silly lockFile 5bd2b521-geoip geoip@
16 verbose lock geoip@ /Users/geuis/.npm/5bd2b521-geoip.lock
17 silly addNameRange { name: 'geoip', range: '', hasData: false }
18 verbose url raw geoip
19 verbose url resolving [ 'https://registry.npmjs.org/', './geoip' ]
20 verbose url resolved https://registry.npmjs.org/geoip
21 info trying registry request attempt 1 at 23:43:12
22 verbose etag "4SG6AH055B9RP1QL7V14JO3AV"
23 http GET https://registry.npmjs.org/geoip
24 http 304 https://registry.npmjs.org/geoip
25 silly registry.get cb [ 304,
25 silly registry.get { server: 'CouchDB/1.2.1 (Erlang OTP/R15B)',
25 silly registry.get etag: '"4SG6AH055B9RP1QL7V14JO3AV"',
25 silly registry.get date: 'Fri, 01 Feb 2013 07:41:28 GMT',
25 silly registry.get 'content-length': '0' } ]
26 verbose etag geoip from cache
27 silly addNameRange number 2 { name: 'geoip', range: '', hasData: true }
28 silly addNameRange versions [ 'geoip',
28 silly addNameRange [ '0.1.0',
28 silly addNameRange '0.1.3',
28 silly addNameRange '0.2.0',
28 silly addNameRange '0.2.1',
28 silly addNameRange '0.3.0',
28 silly addNameRange '0.3.1',
28 silly addNameRange '0.3.1-1',
28 silly addNameRange '0.3.2',
28 silly addNameRange '0.3.3',
28 silly addNameRange '0.3.3-1',
28 silly addNameRange '0.3.4',
28 silly addNameRange '0.3.4-1',
28 silly addNameRange '0.4.0beta1',
28 silly addNameRange '0.4.0beta2',
28 silly addNameRange '0.4.0rc',
28 silly addNameRange '0.4.0final',
28 silly addNameRange '0.4.1',
28 silly addNameRange '0.4.2',
28 silly addNameRange '0.4.2-1',
28 silly addNameRange '0.4.2-2',
28 silly addNameRange '0.4.3',
28 silly addNameRange '0.4.4',
28 silly addNameRange '0.4.5',
28 silly addNameRange '0.4.6',
28 silly addNameRange '0.4.7' ] ]
29 verbose addNamed [ 'geoip', '0.4.7' ]
30 verbose addNamed [ '0.4.7', '0.4.7' ]
31 silly lockFile 4589c44a-geoip-0-4-7 [email protected]
32 verbose lock [email protected] /Users/geuis/.npm/4589c44a-geoip-0-4-7.lock
33 verbose read json /Users/geuis/.npm/geoip/0.4.7/package/package.json
34 silly lockFile 4589c44a-geoip-0-4-7 [email protected]
35 silly lockFile 5bd2b521-geoip geoip@
36 silly resolved [ { name: 'geoip',
36 silly resolved description: 'GeoIP binding for node',
36 silly resolved version: '0.4.7',
36 silly resolved homepage: 'http://github.com/kuno/GeoIP',
36 silly resolved author:
36 silly resolved { name: 'Guan 'kuno' Qing',
36 silly resolved email: 'neokuno at Gmail dot com' },
36 silly resolved contributors:
36 silly resolved [ [Object],
36 silly resolved [Object],
36 silly resolved [Object],
36 silly resolved [Object],
36 silly resolved [Object],
36 silly resolved [Object],
36 silly resolved [Object],
36 silly resolved [Object],
36 silly resolved [Object],
36 silly resolved [Object],
36 silly resolved [Object] ],
36 silly resolved devDependencies: { mocha: '~1.7.0', chai: '~1.3.0' },
36 silly resolved repository: { type: 'git', url: 'git://github.com/kuno/GeoIP.git' },
36 silly resolved keywords: [ 'geoip', 'geolocation' ],
36 silly resolved bugs:
36 silly resolved { mail: '[email protected]',
36 silly resolved url: 'http://github.com/kuno/GeoIP/issues' },
36 silly resolved main: 'index.js',
36 silly resolved directory:
36 silly resolved { src: './src',
36 silly resolved test: './test',
36 silly resolved misc: './misc',
36 silly resolved sample: './sample',
36 silly resolved benchmark: './benchmark' },
36 silly resolved engine: { node: '~0.8.0', npm: '1' },
36 silly resolved scripts:
36 silly resolved { build: 'node-gyp clean configure build',
36 silly resolved test: './bootstrap.sh && ./node_modules/.bin/mocha ./test/.mocha.js',
36 silly resolved install: 'node-gyp rebuild' },
36 silly resolved licences: [ [Object] ],
36 silly resolved gypfile: true,
36 silly resolved readme: 'GeoIP binding for nodejs\nbuild status\n\nGet geolocation information based on domain or IP address.\n\n##Important Notification\n\nFrom v0.4.0, geoip will be bind to libgeoip >= 1.4.7, which is a C library, the api also has been changed.\n\n###Technical Architecture\n\nnew_architecture\n\n###Memory leak issue\nAs up to the version 0.4.7 (commit 22dadd98646f75318412b54b3de90cc079d34b1d), there will be some memory leak when new a object from GeoIP class.\n\nHere is the report, I'll update it frequently.\n\nFortunately, the number of leaked bytes is not huge, and you wont new a object very offen.\n\nIf you are willing to fix this but, please fork this project.\n\n\n###Dependency\n\n####libgeoip C library\n\nIf your os has a system package manager (e.g, on linux, apt of ubuntu, yum of fedora, pacman of arch. MacPorts and homebrew on OSX),\n\nthen, there is a very high possibility that there is alreay a geoip c library package inside the repository.\n\nIf not, you can build for yourself:\n\n wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.7.tar.gz\n tar -xvzf GeoIP-1.4.7.tar.gz\n cd GeoIP-1.4.7\n ./configure --prefix=/usr\n make\n sudo make install\n\n#####Dependency Policy\n\nGeoIP takes the so call 'two steps' dependency policy, which means the minimal version of libgeoip is always the previous release of the latest one.\n\nFor example, currently(April 2012) latest release of libgeoip is 1.4.8, so the minimal dependency will be the previous release, which is 1.4.7, and so on.\n\n##Data\n\nBefor you can use this package, you need to download or buy some data from www.maxmind.com.\n\nThere are some free databases among some commercial versions, the free databases can be found here.\n\n\n##Installation\n\n### for nodejs 0.8.x\n\n [sudo] npm install geoip [-g]\n\n### for nodejs 0.6.x\n\n [sudo] npm install [email protected] [-g]\n\n### for nodejs 0.4.x\n\n [sudo] npm install [email protected] [-g]\n\n### for nodejs older than 0.4.0\n\nFrom v0.4.0, geoip need nodejs >= 0.4.0, if you want to use it on old nodejs, you can:\n\n npm install [email protected]\n\n\n##Usage\n\n###Check edition\n\n var edition = geoip.check('/path/to/file');\n\n console.log(edition); // output 'country', 'city', 'org'... so on\n\n###Create a new instance of sub-module, for example:\n\n var city = new geoip.City('/path/to/GeoLiteCity.dat', false); // not to cache the database\n\n var city = new geoip.City('/path/to/GeoLiteCity.dat'); // the default option is cache\n\n###Update database on the fly:\n\n city.update('/path/to/new/GeoLiteCity.dat');\n\n##Modules\n\n###Country\n\nipv4 address lookup\n\n // Open the country data file\n var Country = geoip.Country;\n\n var country = new Country('/path/to/GeoIP.dat');\n\n // Synchronous method(the recommended way):\n var country_obj = country.lookupSync('8.8.8.8');\n\n console.log(country_obj);\n /
\n { country_code: 'US',\n country_code3: 'USA',\n country_name: 'United States',\n continent_code: 'NA'\n }\n /\n\n // Asynchronous method:\n country.lookup('www.google.com', function(err, data) {\n if (err) {throw err;}\n if (data) { // if not found, just return null\n console.log(data); // same as lookup method\n }\n });\n\nipv6 address lookup (Currently only Country and City module supports ipv6)\n\n // Open the ipv6 edition of country module\n var Country6 = geoip.Country6;\n\n var country_v6 = new Country6('/path/to/GeoIPv6.dat');\n\n // Synchronous method\n var country_obj_v6 = country_v6.lookupSync('2607:f0d0:1002:0051:0000:0000:0000:0004');\n\n console.log(country_obj_v6); // Same as ipv4\n /\n { country_code: 'US',\n country_code3: 'USA',\n country_name: 'United States',\n continent_code: 'NA'\n }\n /\n\n // Asynchronous method\n country_v6.lookup('2400:2352:b0f1:36c5:aa9d:694a:2f98:40bd', function(err, data_v6) {\n if (err) {throw err;}\n if (data_v6) {\n console.log(data_v6);\n /\n {\n country_code: 'JP',\n country_code3: 'JPN',\n country_name: 'Japan',\n continent_code: 'AS'\n }\n\n /\n }\n });\n\n\n###City\n\nipv4 address lookup\n\n // Open the GeoLiteCity.dat file first.\n var City = geoip.City;\n var city = new City('/path/to/GeoLiteCity.dat');\n\n Synchronous method:\n\n var city_obj = city.lookupSync('8.8.8.8');\n console.log(city_obj);\n /\n Return an object of city information\n {\n "country_code":"US",\n "country_code3":"USA",\n "country_name":"United States",\n "continet_code":"NA",\n "region":"CA",\n "city":"Mountain View",\n "postal_code":"94043",\n "latitude":37.41919999999999,\n "longitude":-122.0574,\n "dma_code":807,\n "metro_code":807,\n "area_code":650\n }\n /\n\n Asynchronous method:\n\n city.lookup('www.google.com', function(err, data) {\n if (err) {throw err;}\n if (data) {\n console.log(data);\n }\n });\n\n\nipv6 address lookup\n\n // Open the GeoLiteCityv6.dat file first.\n var City6 = geoip.City6;\n var city6 = new City6('/path/to/GeoLiteCityv6.dat');\n\n Synchronous method:\n\n var city6_obj = city6.lookupSync('2002:7679:b9af:db9b:ab51:501a:db4e:2d');\n console.log(city6_obj);\n /\n {\n country_code: 'CN',\n country_code3: 'CHN',\n country_name: 'China',\n region: '32',\n city: 'Chengdu',\n latitude: 30.66670036315918,\n longitude: 104.06670379638672,\n continent_code: 'AS'\n }\n /\n\n Asynchronous method:\n\n city6.lookup('2002:c6aa:2dc8:b719:4314:2a7d:e31c:fe73', function(err, data) {\n if (err) {throw err;}\n if (data) {\n console.log(data);\n / As expected ,return an object that contains city information\n {\n country_code: 'US',\n country_code3: 'USA',\n country_name: 'United States',\n region: 'CO',\n city: 'Englewood',\n postal_code: '80112',\n latitude: 39.569000244140625,\n longitude: -104.85820007324219,\n continent_code: 'NA'\n }\n /\n }\n });\n\n###Organization\n\n var Org = geoip.Org;\n var org = new Org('/path/to/file') // Org module can open three edition database 'org', 'asnum', 'isp'\n\nSynchronous method:\n\n var org_str = org.lookupSync('8.8.8.8');\n\n console.log(org_str);\n /\n The type of returned data is string, for example:\n\n 'Genuity'\n 'AS15169 Google Inc.'\n\n no longer an object\n /\n\nAsynchronous method:\n\n org.lookup('www.google.com', function(err, data) {\n if (err) {throw err;}\n if (data) {\n console.log(data);\n }\n });\n\n\n###Region\n\n var Region = geoip.Region;\n var region = new Region('/path/to/GeoIPRegion.dat');\n\nSynchronous method:\n\n var region_obj = region.lookupSync('8.8.8.8');\n\n console.log('region_obj);\n /\n region object has two properties:\n { country_code: 'US', region: 'CO' }\n\n /\n\nAsynchronous method:\n\n region.lookup('www.google.com', function(err, data) {\n if (err) {throw err;}\n if (data) {\n console.log(data);\n }\n });\n\n\n###NetSpeed\n\n var NetSpeed = geoip.NetSpeed;\n var netspeed = new NetSpeed('/path/to/GeoIPNetSpeed.dat');\n\nSynchronous method:\n\n var netspeed_str = netspeed.lookupSync('8.8.8.8');\n\n console.log(netspeed_str);\n /\n netspeed_str just a simple string, 'Dialup', 'Corprate'... so on\n */\n\nAsynchronous method:\n\n netspeed.lookup('www.google.com', function(err, data) {\n if (err) {throw err;}\n if (data) {\n console.log(data); // Maybe return 'unknow' or different from lookup method\n }\n });\n',
36 silly resolved readmeFilename: 'README.md',
36 silly resolved _id: '[email protected]',
36 silly resolved _from: 'geoip' } ]
37 info install [email protected] into /usr/local/apps/jsonip
38 info installOne [email protected]
39 verbose from cache /Users/geuis/.npm/geoip/0.4.7/package/package.json
40 info /usr/local/apps/jsonip/node_modules/geoip unbuild
41 verbose read json /usr/local/apps/jsonip/node_modules/geoip/package.json
42 verbose tar unpack /Users/geuis/.npm/geoip/0.4.7/package.tgz
43 silly lockFile 8721bc3c-l-apps-jsonip-node-modules-geoip /usr/local/apps/jsonip/node_modules/geoip
44 verbose lock /usr/local/apps/jsonip/node_modules/geoip /Users/geuis/.npm/8721bc3c-l-apps-jsonip-node-modules-geoip.lock
45 silly gunzTarPerm modes [ '755', '644' ]
46 silly gunzTarPerm extractEntry package.json
47 silly gunzTarPerm extractEntry .npmignore
48 silly gunzTarPerm extractEntry README.md
49 silly gunzTarPerm extractEntry LICENCE
50 silly gunzTarPerm extractEntry index.js
51 silly gunzTarPerm extractEntry bootstrap.sh
52 silly gunzTarPerm extractEntry binding.gyp
53 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/README
54 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/install-sh
55 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/AUTHORS
56 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/bootstrap
57 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/ChangeLog
58 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/conf/GeoIP.conf.default
59 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/conf/Makefile.am
60 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/conf/Makefile.in
61 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/config.guess
62 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/config.sub
63 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/configure
64 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/configure.in
65 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/COPYING
66 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/data/Makefile.am
67 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/data/Makefile.in
68 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/depcomp
69 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/geoip.ico
70 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/GeoIP.spec.in
71 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/GeoIPWinDLL.patch
72 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/get_ver.awk
73 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/INSTALL
74 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/apps/geoiplookup.c
75 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/apps/geoiplookup6.c
76 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/apps/geoipupdate-pureperl.pl
77 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/apps/geoipupdate.c
78 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/apps/Makefile.am
79 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/apps/Makefile.in
80 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/apps/Makefile.vc
81 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/Makefile.am
82 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/GeoIP.c
83 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/GeoIP_internal.h
84 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/GeoIPCity.c
85 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/GeoIPCity.h
86 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/GeoIPUpdate.c
87 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/GeoIPUpdate.h
88 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/global.h
89 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/GeoIP.h
90 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/Makefile.in
91 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/Makefile.vc
92 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/md5.c
93 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/md5.h
94 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/regionName.c
95 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/timeZone.c
96 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/libGeoIP/types.h
97 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/ltmain.sh
98 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/Makefile.am
99 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/Makefile.in
100 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/Makefile.netware
101 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/Makefile.vc
102 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/Makefile.win32
103 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/man/geoiplookup.1.in
104 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/man/geoiplookup6.1.in
105 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/man/geoipupdate.1.in
106 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/man/Makefile.am
107 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/man/Makefile.in
108 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/missing
109 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/NEWS
110 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/aclocal.m4
111 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/README.MinGW
112 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/README.OSX
113 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/READMEwin32.txt
114 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/READMEwin32static.txt
115 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/region_test.txt
116 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/benchmark.c
117 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/country_test.txt
118 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/country_test2.txt
119 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/country_test_name.txt
120 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/Makefile.am
121 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/Makefile.in
122 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/Makefile.vc
123 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/city_test.txt
124 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/test-geoip-asnum.c
125 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/test-geoip-city.c
126 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/test-geoip-isp.c
127 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/test-geoip-netspeed.c
128 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/test-geoip-org.c
129 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/test-geoip-region.c
130 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/test/test-geoip.c
131 silly gunzTarPerm extractEntry deps/GeoIP-1.4.8/TODO
132 silly gunzTarPerm extractEntry wscript
133 silly gunzTarPerm extractEntry src/init.cc
134 silly gunzTarPerm extractEntry src/city.cc
135 silly gunzTarPerm extractEntry src/city6.cc
136 silly gunzTarPerm extractEntry src/city6.h
137 silly gunzTarPerm extractEntry src/country.cc
138 silly gunzTarPerm extractEntry src/country.h
139 silly gunzTarPerm extractEntry src/country6.cc
140 silly gunzTarPerm extractEntry src/country6.h
141 silly gunzTarPerm extractEntry src/global.cc
142 silly gunzTarPerm extractEntry src/global.h
143 silly gunzTarPerm extractEntry src/city.h
144 silly gunzTarPerm extractEntry src/init.h
145 silly gunzTarPerm extractEntry src/netspeed.cc
146 silly gunzTarPerm extractEntry src/netspeed.h
147 silly gunzTarPerm extractEntry src/org.cc
148 silly gunzTarPerm extractEntry src/org.h
149 silly gunzTarPerm extractEntry src/region.cc
150 silly gunzTarPerm extractEntry src/region.h
151 silly gunzTarPerm extractEntry src/utils.cc
152 silly gunzTarPerm extractEntry src/utils.h
153 silly gunzTarPerm extractEntry test/city.mocha.js
154 silly gunzTarPerm extractEntry test/city6.mocha.js
155 silly gunzTarPerm extractEntry test/country.mocha.js
156 silly gunzTarPerm extractEntry test/country6.mocha.js
157 silly gunzTarPerm extractEntry test/memory_leak.js
158 silly gunzTarPerm extractEntry test/netspeed.mocha.js
159 silly gunzTarPerm extractEntry test/org.mocha.js
160 silly gunzTarPerm extractEntry test/region.mocha.js
161 silly gunzTarPerm extractEntry test/sagfault.js
162 silly gunzTarPerm extractEntry test/utils.mocha.js
163 silly gunzTarPerm extractEntry Makefile
164 verbose read json /usr/local/apps/jsonip/node_modules/geoip/package.json
165 silly lockFile 8721bc3c-l-apps-jsonip-node-modules-geoip /usr/local/apps/jsonip/node_modules/geoip
166 info preinstall [email protected]
167 verbose from cache /usr/local/apps/jsonip/node_modules/geoip/package.json
168 verbose readDependencies using package.json deps
169 verbose from cache /usr/local/apps/jsonip/node_modules/geoip/package.json
170 verbose readDependencies using package.json deps
171 silly resolved []
172 verbose about to build /usr/local/apps/jsonip/node_modules/geoip
173 info build /usr/local/apps/jsonip/node_modules/geoip
174 verbose from cache /usr/local/apps/jsonip/node_modules/geoip/package.json
175 verbose linkStuff [ false, false, false, '/usr/local/apps/jsonip/node_modules' ]
176 info linkStuff [email protected]
177 verbose linkBins [email protected]
178 verbose linkMans [email protected]
179 verbose rebuildBundles [email protected]
180 info install [email protected]
181 verbose unsafe-perm in lifecycle true
182 silly exec sh "-c" "node-gyp rebuild"
183 silly sh,-c,node-gyp rebuild,/usr/local/apps/jsonip/node_modules/geoip spawning
184 info [email protected] Failed to exec install script
185 info /usr/local/apps/jsonip/node_modules/geoip unbuild
186 verbose from cache /usr/local/apps/jsonip/node_modules/geoip/package.json
187 info preuninstall [email protected]
188 info uninstall [email protected]
189 verbose true,/usr/local/apps/jsonip/node_modules,/usr/local/apps/jsonip/node_modules unbuild [email protected]
190 info postuninstall [email protected]
191 error [email protected] install: node-gyp rebuild
191 error sh "-c" "node-gyp rebuild" failed with 1
192 error Failed at the [email protected] install script.
192 error This is most likely a problem with the geoip package,
192 error not with npm itself.
192 error Tell the author that this fails on your system:
192 error node-gyp rebuild
192 error You can get their info via:
192 error npm owner ls geoip
192 error There is likely additional logging output above.
193 error System Darwin 12.2.0
194 error command "/usr/local/Cellar/node/0.8.16/bin/node" "/usr/local/bin/npm" "install" "geoip"
195 error cwd /usr/local/apps/jsonip/geoip
196 error node -v v0.8.16
197 error npm -v 1.1.69
198 error code ELIFECYCLE
199 verbose exit [ 1, true ]

Could not install

Nothing to clean (project not configured)
Checking for program g++ or c++ : /usr/bin/g++
Checking for program cpp : /usr/bin/cpp
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Checking for g++ : ok
Checking for node path : not found
Checking for node prefix : ok /usr/local
'configure' finished successfully (0.047s)
Waf: Entering directory /home/alessio/Desktop/www/node_modules/geoip/build' [1/9] cxx: src/init.cc -> build/default/src/init_1.o [2/9] cxx: src/netspeed.cc -> build/default/src/netspeed_1.o In file included from ../src/netspeed.h:12:0, from ../src/netspeed.cc:7: ../src/node_geoip.h:7:19: fatal error: GeoIP.h: No such file or directory compilation terminated. In file included from ../src/netspeed.h:12:0, from ../src/init.cc:7: ../src/node_geoip.h:7:19: fatal error: GeoIP.h: No such file or directory compilation terminated. Waf: Leaving directory/home/alessio/Desktop/www/node_modules/geoip/build'
Build failed:
-> task failed (err #1):
{task: cxx netspeed.cc -> netspeed_1.o}
-> task failed (err #1):
{task: cxx init.cc -> init_1.o}
npm ERR! error installing [email protected] Error: [email protected] preinstall: node-waf clean || true; node-waf configure build
npm ERR! error installing [email protected] sh "-c" "node-waf clean || true; node-waf configure build" failed with 1
npm ERR! error installing [email protected] at ChildProcess. (/usr/local/lib/node_modules/npm/lib/utils/exec.js:49:20)
npm ERR! error installing [email protected] at ChildProcess.emit (events.js:67:17)
npm ERR! error installing [email protected] at ChildProcess.onexit (child_process.js:192:12)
npm ERR! [email protected] preinstall: node-waf clean || true; node-waf configure build
npm ERR! sh "-c" "node-waf clean || true; node-waf configure build" failed with 1
npm ERR!
npm ERR! Failed at the [email protected] preinstall script.
npm ERR! This is most likely a problem with the geoip package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-waf clean || true; node-waf configure build
npm ERR! You can get their info via:
npm ERR! npm owner ls geoip
npm ERR! There is likely additional logging output above.
npm ERR!
npm ERR! System Linux 2.6.38-8-generic
npm ERR! command "node" "/usr/local/bin/npm" "install" "geoip"
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/alessio/Desktop/www/npm-debug.log
npm not ok

I have followed the instruction for the module (installed the GeoIP c package), but the install of the module just fails. Can you help please?

Geoip not returning city data

Hello,,

I am using GeoIp in my node application . It was working fine but since last couple weeks stops returning city data. There was no code change I can recall.

nodejs code :

var geoip = require('../lib/geoip.js');
var geoip = require('geoip');
var City = geoip.City;
var city = new City('/site/node_modules/geoip/deps/GeoIP-1.4.8/data/GeoLiteCity.dat');
var city_obj = city.lookupSync(req.header('X-Forwarded-For'));

console.log(city_obj);

{ country_code: 'US',
country_code3: 'USA',
country_name: 'United States',
latitude: 38,
longitude: -97,
continent_code: 'NA' }

node -v
v0.6.18

Thank you,
WG

Cannot install [email protected]

npm info it worked if it ends with ok
npm info using [email protected]
npm info using [email protected]
npm info preinstall [email protected]
Nothing to clean (project not configured)
Checking for program g++ or c++ : /usr/bin/g++
Checking for program cpp : /usr/bin/cpp
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Checking for g++ : ok
Checking for node path : ok /Users/shripadk/.node_libraries
Checking for node prefix : ok /usr/local
'configure' finished successfully (0.070s)
Waf: Entering directory /home/kuno/harbour/geoip/build' Waf: Leaving directory/home/kuno/harbour/geoip/build'
Traceback (most recent call last):
File "/usr/local/bin/node-waf", line 16, in
Scripting.prepare(t, os.getcwd(), VERSION, wafdir)
File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 145, in prepare
prepare_impl(t, cwd, ver, wafdir)
File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 135, in prepare_impl
main()
File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 188, in main
fun(ctx)
File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 386, in build
return build_impl(bld)
File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 405, in build_impl
bld.compile()
File "/usr/local/bin/../lib/node/wafadmin/Build.py", line 268, in compile
os.chdir(self.bldnode.abspath())
OSError: [Errno 5] Input/output error: '/home/kuno/harbour/geoip/build'
npm info [email protected] Failed to exec preinstall script
npm ERR! install failed Error: [email protected] preinstall: node-waf clean || true; node-waf configure build
npm ERR! install failed sh "-c" "node-waf clean || true; node-waf configure build" failed with 1
npm ERR! install failed at ChildProcess. (/usr/local/lib/node/.npm/npm/0.3.0-8/package/lib/utils/exec.js:45:20)
npm ERR! install failed at ChildProcess.emit (events.js:45:17)
npm ERR! install failed at ChildProcess.onexit (child_process.js:171:12)
npm info install failed rollback
npm info uninstall [ '[email protected]' ]
npm info preuninstall [email protected]
npm info uninstall [email protected]
npm info postuninstall [email protected]
npm info uninstall [email protected] complete
npm info install failed rolled back
npm ERR! Error: [email protected] preinstall: node-waf clean || true; node-waf configure build
npm ERR! sh "-c" "node-waf clean || true; node-waf configure build" failed with 1
npm ERR! at ChildProcess. (/usr/local/lib/node/.npm/npm/0.3.0-8/package/lib/utils/exec.js:45:20)
npm ERR! at ChildProcess.emit (events.js:45:17)
npm ERR! at ChildProcess.onexit (child_process.js:171:12)
npm ERR!
npm ERR! Failed at the [email protected] preinstall script.
npm ERR! This is most likely a problem with the geoip package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-waf clean || true; node-waf configure build
npm ERR! You can get their info via:
npm ERR! npm owner ls geoip
npm ERR! There may be additional logging output above.
npm not ok

Charsets

The latest GeoIP API has native UTF8 string conversion. Perhaps use the GeoIP_set_charset method with GEOIP_CHARSET_UTF8 to avoid charset issues (node uses UTF8 and breaks non-latin characters with ISO-8859-1)

GeoIP not installable under node v0.10.0

I am trying to update to the recently released node v0.10.0, and I am getting an error during compilation of geoip. Compilation log transcript follows.

$ npm install geoip
CXX(target) Release/obj.target/geoip/src/global.o
CXX(target) Release/obj.target/geoip/src/init.o
CXX(target) Release/obj.target/geoip/src/country.o
../src/country.cc: In static member function ‘static v8::Handlev8::Value geoip::Country::lookup(const v8::Arguments&)’:
../src/country.cc:117:70: error: invalid conversion from ‘void ()(uv_work_t) {aka void ()(uv_work_s)}’ to ‘uv_after_work_cb {aka void ()(uv_work_s, int)}’ [-fpermissive]
In file included from /home/chenno/.node-gyp/0.10.0/src/node.h:61:0,
from ../src/country.h:11,
from ../src/country.cc:7:
/home/chenno/.node-gyp/0.10.0/deps/uv/include/uv.h:1397:15: error: initializing argument 4 of ‘int uv_queue_work(uv_loop_t_, uv_work_t_, uv_work_cb, uv_after_work_cb)’ [-fpermissive]
make: *** [Release/obj.target/geoip/src/country.o] Error 1
make: Leaving directory /home/chenno/projects/mediasmart/adserver/node_modules/geoip/build' gyp ERR! build error gyp ERR! stack Error:makefailed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:256:23) gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:98:17) gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:754:12) gyp ERR! System Linux 3.6.3chennolatency gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /home/chenno/projects/mediasmart/adserver/node_modules/geoip gyp ERR! node -v v0.10.0 gyp ERR! node-gyp -v v0.8.5 gyp ERR! not ok npm ERR! [email protected] install:node-gyp rebuild npm ERR!sh "-c" "node-gyp rebuild"` failed with 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the geoip package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get their info via:
npm ERR! npm owner ls geoip
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 3.6.3chennolatency
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "geoip" "[email protected]" "protobuf" "microtime" "https://github.com/postwait/node-amqp/tarball/master" "linkedlist"
npm ERR! cwd /home/chenno/projects/mediasmart/adserver
npm ERR! node -v v0.10.0
npm ERR! npm -v 1.2.14
npm ERR! code ELIFECYCLE

isp & organization

Hi,

will you provide bindings for isp and organization queries as well?

Cheers,

  • C.

build on FreeBSD9 fails

    $ npm install geoip
    npm WARN [email protected] dependencies field should be hash of <name>:<version-range> pairs
    npm WARN [email protected] package.json: bugs['web'] should probably be bugs['url']
    npm http GET https://registry.npmjs.org/geoip
    npm http 304 https://registry.npmjs.org/geoip

    > [email protected] preinstall /home/khine/sandboxes/livestats/node_modules/geoip
    > node-waf clean || (exit 0); node-waf configure build

    Nothing to clean (project not configured)
    Checking for program g++ or c++          : /usr/bin/g++ 
    Checking for program cpp                 : /usr/bin/cpp 
    Checking for program ar                  : /usr/bin/ar 
    Checking for program ranlib              : /usr/bin/ranlib 
    Checking for g++                         : ok  
    Checking for node path                   : not found 
    Checking for node prefix                 : ok /home/khine 
    'configure' finished successfully (0.019s)
    Waf: Entering directory `/home/khine/sandboxes/livestats/node_modules/geoip/build'
    [ 1/11] cxx: src/init.cc -> build/Release/src/init_1.o
    [ 2/11] cxx: src/netspeed.cc -> build/Release/src/netspeed_1.o
    [ 3/11] cxx: src/country6.cc -> build/Release/src/country6_1.o
    [ 4/11] cxx: src/country.cc -> build/Release/src/country_1.o
    [ 5/11] cxx: src/region.cc -> build/Release/src/region_1.o
    [ 7/11] cxx: src/city.cc -> build/Release/src/city_1.o
    [ 6/11] cxx: src/city6.cc -> build/Release/src/city6_1.o
    [ 8/11] cxx: src/org.cc -> build/Release/src/org_1.o
    In file included from ../src/netspeed.h:12,
                     from ../src/init.cc:7:
    ../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
    ../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
    In file included from ../src/netspeed.h:12,
                     from ../src/netspeed.cc:7:
    ../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
    ../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
    In file included from ../src/country.h:12,
                     from ../src/country.cc:7:
    ../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
    ../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
    In file included from ../src/country6.h:12,
                     from ../src/country6.cc:7:
    ../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
    ../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
    In file included from ../src/city.h:12,
                     from ../src/city.cc:7:
    ../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
    ../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
    In file included from ../src/region.h:12,
                     from ../src/region.cc:7:
    ../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
    ../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
    In file included from ../src/org.h:12,
                     from ../src/org.cc:7:
    ../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
    ../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
    In file included from ../src/country.h:12,
                     from ../src/country.cc:7:
    ../src/node_geoip.h:20: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:21: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:23: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:24: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:25: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:28: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:29: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:31: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:32: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:39: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:40: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:41: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:42: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:43: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:44: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:46: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:47: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:48: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:51: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:60: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:61: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:73: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:74: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:75: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:77: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:78: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:79: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:81: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:82: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:83: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:85: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:86: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:87: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:90: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:92: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:94: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:97: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:98: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:99: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:101: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:102: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:103: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:106: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:109: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:112: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:115: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:118: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:121: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:124: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:126: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:127: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:129: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:130: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:131: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:132: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:134: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:135: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:136: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:139: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:142: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:145: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:146: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:153: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:156: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:160: error: expected constructor, destructor, or type conversion before '*' token
    ../src/node_geoip.h:161: error: expected constructor, destructor, or type conversion before '*' token
    ../src/node_geoip.h:163: error: expected constructor, destructor, or type conversion before '*' token
    In file included from ../src/country.cc:7:
    ../src/country.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
    ../src/country.h:21: error: expected ';' before '*' token
    ../src/country.cc: In static member function 'static v8::Handle<v8::Value> geoip::Country::New(const v8::Arguments&)':
    ../src/country.cc:48: error: 'class geoip::Country' has no member named 'db'
    ../src/country.cc:48: error: 'GEOIP_MEMORY_CACHE' was not declared in this scope
    ../src/country.cc:48: error: 'GEOIP_STANDARD' was not declared in this scope
    ../src/country.cc:48: error: 'GeoIP_open' was not declared in this scope
    ../src/country.cc:50: error: 'class geoip::Country' has no member named 'db'
    ../src/country.cc:51: error: 'class geoip::Country' has no member named 'db'
    ../src/country.cc:51: error: 'GeoIP_database_edition' was not declared in this scope
    ../src/country.cc:52: error: 'GEOIP_COUNTRY_EDITION' was not declared in this scope
    ../src/country.cc:56: error: 'class geoip::Country' has no member named 'db'
    ../src/country.cc:56: error: 'GeoIP_delete' was not declared in this scope
    ../src/country.cc:57: error: 'class geoip::Country' has no member named 'db'
    ../src/country.cc: In static member function 'static v8::Handle<v8::Value> geoip::Country::lookupSync(const v8::Arguments&)':
    ../src/country.cc:75: error: '_GeoIP_lookupaddress' was not declared in this scope
    ../src/country.cc:80: error: 'class geoip::Country' has no member named 'db'
    ../src/country.cc:80: error: 'GeoIP_id_by_ipnum' was not declared in this scope
    ../src/country.cc:84: error: 'GeoIP_country_name' was not declared in this scope
    ../src/country.cc:85: error: 'GeoIP_country_code' was not declared in this scope
    ../src/country.cc:86: error: 'GeoIP_country_code3' was not declared in this scope
    ../src/country.cc:87: error: 'GeoIP_country_continent' was not declared in this scope
    ../src/country.cc: In static member function 'static v8::Handle<v8::Value> geoip::Country::lookup(const v8::Arguments&)':
    ../src/country.cc:107: error: '_GeoIP_lookupaddress' was not declared in this scope
    In file included from ../src/netspeed.h:12,
                     from ../src/netspeed.cc:7:
    ../src/node_geoip.h:20: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:21: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:23: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:24: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:25: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:28: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:29: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:31: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:32: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:39: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:40: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:41: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:42: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:43: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:44: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:46: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:47: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:48: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:51: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:60: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:61: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:73: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:74: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:75: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:77: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:78: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:79: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:81: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:82: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:83: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:85: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:86: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:87: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:90: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:92: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:94: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:97: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:98: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:99: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:101: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:102: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:103: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:106: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:109: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:112: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:115: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:118: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:121: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:124: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:126: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:127: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:129: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:130: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:131: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:132: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:134: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:135: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:136: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:139: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:142: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:145: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:146: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:153: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:156: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:160: error: expected constructor, destructor, or type conversion before '*' token
    ../src/node_geoip.h:161: error: expected constructor, destructor, or type conversion before '*' token
    ../src/node_geoip.h:163: error: expected constructor, destructor, or type conversion before '*' token
    In file included from ../src/netspeed.cc:7:
    ../src/netspeed.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
    ../src/netspeed.h:21: error: expected ';' before '*' token
    ../src/country.cc: In static member function 'static void geoip::Country::EIO_Country(eio_req*)':
    ../src/country.cc:127: error: 'class geoip::Country' has no member named 'db'
    ../src/country.cc:127: error: 'GeoIP_id_by_ipnum' was not declared in this scope
    ../src/country.cc: In static member function 'static int geoip::Country::EIO_AfterCountry(eio_req*)':
    ../src/country.cc:147: error: 'GeoIP_country_name' was not declared in this scope
    ../src/country.cc:148: error: 'GeoIP_country_code' was not declared in this scope
    ../src/country.cc:149: error: 'GeoIP_country_code3' was not declared in this scope
    ../src/country.cc:150: error: 'GeoIP_country_continent' was not declared in this scope
    ../src/country.cc: In static member function 'static v8::Handle<v8::Value> geoip::Country::update(const v8::Arguments&)':
    ../src/country.cc:182: error: 'class geoip::Country' has no member named 'db'
    ../src/country.cc:182: error: 'GEOIP_MEMORY_CACHE' was not declared in this scope
    ../src/country.cc:182: error: 'GEOIP_STANDARD' was not declared in this scope
    ../src/country.cc:182: error: 'GeoIP_open' was not declared in this scope
    ../src/country.cc:184: error: 'class geoip::Country' has no member named 'db'
    ../src/country.cc:185: error: 'class geoip::Country' has no member named 'db'
    ../src/country.cc:185: error: 'GeoIP_database_edition' was not declared in this scope
    ../src/country.cc:186: error: 'GEOIP_COUNTRY_EDITION' was not declared in this scope
    ../src/country.cc:189: error: 'class geoip::Country' has no member named 'db'
    ../src/country.cc:189: error: 'GeoIP_delete' was not declared in this scope
    ../src/country.cc:190: error: 'class geoip::Country' has no member named 'db'
    ../src/country.cc: In static member function 'static v8::Handle<v8::Value> geoip::Country::close(const v8::Arguments&)':
    ../src/country.cc:202: error: 'class geoip::Country' has no member named 'db'
    ../src/country.cc:202: error: 'GeoIP_delete' was not declared in this scope
    ../src/country.cc:203: error: 'class geoip::Country' has no member named 'db'
    ../src/netspeed.cc: In static member function 'static v8::Handle<v8::Value> geoip::NetSpeed::New(const v8::Arguments&)':
    ../src/netspeed.cc:50: error: 'class geoip::NetSpeed' has no member named 'db'
    ../src/netspeed.cc:50: error: 'GEOIP_MEMORY_CACHE' was not declared in this scope
    ../src/netspeed.cc:50: error: 'GEOIP_STANDARD' was not declared in this scope
    ../src/netspeed.cc:50: error: 'GeoIP_open' was not declared in this scope
    ../src/netspeed.cc:52: error: 'class geoip::NetSpeed' has no member named 'db'
    ../src/netspeed.cc:53: error: 'class geoip::NetSpeed' has no member named 'db'
    ../src/netspeed.cc:53: error: 'GeoIP_database_edition' was not declared in this scope
    ../src/netspeed.cc:54: error: 'GEOIP_NETSPEED_EDITION' was not declared in this scope
    ../src/netspeed.cc:58: error: 'class geoip::NetSpeed' has no member named 'db'
    ../src/netspeed.cc:58: error: 'GeoIP_delete' was not declared in this scope
    ../src/netspeed.cc:59: error: 'class geoip::NetSpeed' has no member named 'db'
    ../src/netspeed.cc: In static member function 'static v8::Handle<v8::Value> geoip::NetSpeed::lookupSync(const v8::Arguments&)':
    ../src/netspeed.cc:77: error: '_GeoIP_lookupaddress' was not declared in this scope
    ../src/netspeed.cc:83: error: 'class geoip::NetSpeed' has no member named 'db'
    ../src/netspeed.cc:83: error: 'GeoIP_id_by_ipnum' was not declared in this scope
    ../src/netspeed.cc:86: error: 'GEOIP_UNKNOWN_SPEED' was not declared in this scope
    ../src/netspeed.cc:88: error: 'GEOIP_DIALUP_SPEED' was not declared in this scope
    ../src/netspeed.cc:90: error: 'GEOIP_CABLEDSL_SPEED' was not declared in this scope
    ../src/netspeed.cc:92: error: 'GEOIP_CORPORATE_SPEED' was not declared in this scope
    ../src/netspeed.cc: In static member function 'static v8::Handle<v8::Value> geoip::NetSpeed::lookup(const v8::Arguments&)':
    ../src/netspeed.cc:111: error: '_GeoIP_lookupaddress' was not declared in this scope
    ../src/netspeed.cc: In static member function 'static void geoip::NetSpeed::EIO_NetSpeed(eio_req*)':
    ../src/netspeed.cc:129: error: 'class geoip::NetSpeed' has no member named 'db'
    ../src/netspeed.cc:129: error: 'GeoIP_id_by_ipnum' was not declared in this scope
    ../src/netspeed.cc: In static member function 'static int geoip::NetSpeed::EIO_AfterNetSpeed(eio_req*)':
    ../src/netspeed.cc:149: error: 'GEOIP_UNKNOWN_SPEED' was not declared in this scope
    ../src/netspeed.cc:151: error: 'GEOIP_DIALUP_SPEED' was not declared in this scope
    ../src/netspeed.cc:153: error: 'GEOIP_CABLEDSL_SPEED' was not declared in this scope
    ../src/netspeed.cc:155: error: 'GEOIP_CORPORATE_SPEED' was not declared in this scope
    ../src/netspeed.cc: In static member function 'static v8::Handle<v8::Value> geoip::NetSpeed::update(const v8::Arguments&)':
    ../src/netspeed.cc:189: error: 'class geoip::NetSpeed' has no member named 'db'
    ../src/netspeed.cc:189: error: 'GEOIP_MEMORY_CACHE' was not declared in this scope
    ../src/netspeed.cc:189: error: 'GEOIP_STANDARD' was not declared in this scope
    ../src/netspeed.cc:189: error: 'GeoIP_open' was not declared in this scope
    ../src/netspeed.cc:191: error: 'class geoip::NetSpeed' has no member named 'db'
    ../src/netspeed.cc:192: error: 'class geoip::NetSpeed' has no member named 'db'
    ../src/netspeed.cc:192: error: 'GeoIP_database_edition' was not declared in this scope
    ../src/netspeed.cc:193: error: 'GEOIP_NETSPEED_EDITION' was not declared in this scope
    ../src/netspeed.cc:196: error: 'class geoip::NetSpeed' has no member named 'db'
    ../src/netspeed.cc:196: error: 'GeoIP_delete' was not declared in this scope
    ../src/netspeed.cc:197: error: 'class geoip::NetSpeed' has no member named 'db'
    In file included from ../src/netspeed.h:12,
                     from ../src/init.cc:7:
    ../src/node_geoip.h:20: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:21: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:23: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:24: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:25: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:28: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:29: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:31: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:32: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:39: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:40: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:41: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:42: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:43: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:44: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:46: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:47: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:48: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:51: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:60: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:61: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:73: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:74: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:75: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:77: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:78: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:79: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:81: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:82: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:83: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:85: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:86: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:87: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:90: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:92: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:94: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:97: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:98: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:99: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:101: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:102: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:103: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:106: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:109: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:112: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:115: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:118: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:121: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:124: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:126: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:127: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:129: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:130: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:131: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:132: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:134: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:135: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:136: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:139: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:142: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:145: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:146: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:153: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:156: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:160: error: expected constructor, destructor, or type conversion before '*' token
    ../src/node_geoip.h:161: error: expected constructor, destructor, or type conversion before '*' token
    ../src/node_geoip.h:163: error: expected constructor, destructor, or type conversion before '*' token
    In file included from ../src/init.cc:7:
    ../src/netspeed.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
    ../src/netspeed.h:21: error: expected ';' before '*' token
    ../src/netspeed.cc: In static member function 'static v8::Handle<v8::Value> geoip::NetSpeed::close(const v8::Arguments&)':
    ../src/netspeed.cc:209: error: 'class geoip::NetSpeed' has no member named 'db'
    ../src/netspeed.cc:209: error: 'GeoIP_delete' was not declared in this scope
    ../src/netspeed.cc:210: error: 'class geoip::NetSpeed' has no member named 'db'
    In file included from ../src/init.cc:8:
    ../src/country6.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
    ../src/country6.h:21: error: expected ';' before '*' token
    ../src/country6.h:49: error: 'geoipv6_t' does not name a type
    In file included from ../src/init.cc:9:
    ../src/country.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
    ../src/country.h:21: error: expected ';' before '*' token
    In file included from ../src/init.cc:10:
    ../src/region.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
    ../src/region.h:21: error: expected ';' before '*' token
    ../src/region.h:49: error: ISO C++ forbids declaration of 'GeoIPRegion' with no type
    ../src/region.h:49: error: expected ';' before '*' token
    In file included from ../src/init.cc:11:
    ../src/city6.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
    ../src/city6.h:21: error: expected ';' before '*' token
    ../src/city6.h:50: error: ISO C++ forbids declaration of 'GeoIPRecord' with no type
    ../src/city6.h:50: error: expected ';' before '*' token
    ../src/city6.h:51: error: 'geoipv6_t' does not name a type
    In file included from ../src/init.cc:12:
    ../src/city.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
    ../src/city.h:21: error: expected ';' before '*' token
    ../src/city.h:50: error: ISO C++ forbids declaration of 'GeoIPRecord' with no type
    ../src/city.h:50: error: expected ';' before '*' token
    In file included from ../src/init.cc:13:
    ../src/org.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
    ../src/org.h:21: error: expected ';' before '*' token
    ../src/init.cc: In function 'void init(v8::Handle<v8::Object>)':
    ../src/init.cc:34: error: 'GeoIP_lib_version' was not declared in this scope
    In file included from ../src/country6.h:12,
                     from ../src/country6.cc:7:
    ../src/node_geoip.h:20: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:21: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:23: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:24: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:25: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:28: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:29: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:31: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:32: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:39: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:40: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:41: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:42: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:43: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:44: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:46: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:47: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:48: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:51: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:60: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:61: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:73: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:74: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:75: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:77: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:78: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:79: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:81: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:82: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:83: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:85: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:86: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:87: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:90: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:92: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:94: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:97: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:98: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:99: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:101: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:102: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:103: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:106: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:109: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:112: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:115: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:118: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:121: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:124: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:126: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:127: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:129: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:130: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:131: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:132: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:134: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:135: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:136: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:139: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:142: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:145: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:146: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:153: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:156: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:160: error: expected constructor, destructor, or type conversion before '*' token
    ../src/node_geoip.h:161: error: expected constructor, destructor, or type conversion before '*' token
    ../src/node_geoip.h:163: error: expected constructor, destructor, or type conversion before '*' token
    In file included from ../src/country6.cc:7:
    ../src/country6.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
    ../src/country6.h:21: error: expected ';' before '*' token
    ../src/country6.h:49: error: 'geoipv6_t' does not name a type
    ../src/country6.cc: In static member function 'static v8::Handle<v8::Value> geoip::Country6::New(const v8::Arguments&)':
    ../src/country6.cc:48: error: 'class geoip::Country6' has no member named 'db'
    ../src/country6.cc:48: error: 'GEOIP_MEMORY_CACHE' was not declared in this scope
    ../src/country6.cc:48: error: 'GEOIP_STANDARD' was not declared in this scope
    ../src/country6.cc:48: error: 'GeoIP_open' was not declared in this scope
    ../src/country6.cc:50: error: 'class geoip::Country6' has no member named 'db'
    ../src/country6.cc:51: error: 'class geoip::Country6' has no member named 'db'
    ../src/country6.cc:51: error: 'GeoIP_database_edition' was not declared in this scope
    ../src/country6.cc:52: error: 'GEOIP_COUNTRY_EDITION_V6' was not declared in this scope
    ../src/country6.cc:56: error: 'class geoip::Country6' has no member named 'db'
    ../src/country6.cc:56: error: 'GeoIP_delete' was not declared in this scope
    ../src/country6.cc:57: error: 'class geoip::Country6' has no member named 'db'
    ../src/country6.cc: In static member function 'static v8::Handle<v8::Value> geoip::Country6::lookupSync(const v8::Arguments&)':
    ../src/country6.cc:71: error: 'GEOIP_COUNTRY_EDITION_V6' was not declared in this scope
    ../src/country6.cc:80: error: 'geoipv6_t' was not declared in this scope
    ../src/country6.cc:80: error: expected `;' before 'ipnum_v6'
    ../src/country6.cc:82: error: 'ipnum_v6' was not declared in this scope
    ../src/country6.cc:82: error: '__GEOIP_V6_IS_NULL' was not declared in this scope
    ../src/country6.cc:85: error: 'class geoip::Country6' has no member named 'db'
    ../src/country6.cc:85: error: 'GeoIP_id_by_ipnum_v6' was not declared in this scope
    ../src/country6.cc:89: error: 'GeoIP_country_name' was not declared in this scope
    ../src/country6.cc:90: error: 'GeoIP_country_code' was not declared in this scope
    ../src/country6.cc:91: error: 'GeoIP_country_code3' was not declared in this scope
    ../src/country6.cc:92: error: 'GeoIP_country_continent' was not declared in this scope
    ../src/country6.cc: In static member function 'static v8::Handle<v8::Value> geoip::Country6::lookup(const v8::Arguments&)':
    ../src/country6.cc:107: error: 'GEOIP_COUNTRY_EDITION_V6' was not declared in this scope
    ../src/country6.cc:117: error: 'struct country6_baton_t' has no member named 'ipnum_v6'
    ../src/country6.cc:117: error: '_GeoIP_lookupaddress_v6' was not declared in this scope
    In file included from ../src/city.h:12,
                     from ../src/city.cc:7:
    ../src/node_geoip.h:20: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:21: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:23: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:24: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:25: error: 'GEOIP_API' does not name a type
    In file included from ../src/city6.h:12../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before 'unsigned',
                     from ../src/city6.cc:7
    :
    ../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory../src/node_geoip.h:28: error: 'GEOIP_API' does not name a type

    ../src/node_geoip.h:29: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:31: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:32: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:39: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:40: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:8:23:../src/node_geoip.h:41: error: 'GEOIP_API' does not name a type 
    error: GeoIPCity.h: No such file or directory
    ../src/node_geoip.h:42: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:43: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:44: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:46: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:47: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:48: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:51: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:60: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:61: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:73: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:74: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:75: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:77: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:78: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:79: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:81: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:82: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:83: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:85: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:86: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:87: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:90: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:92: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:94: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:97: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:98: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:99: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:101: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:102: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:103: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:106: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:109: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:112: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:115: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:118: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:121: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:124: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:126: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:127: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:129: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:130: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:131: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:132: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:134: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:135: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:136: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:139: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:142: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:145: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:146: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:153: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:156: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:160: error: expected constructor, destructor, or type conversion before '*' token
    ../src/node_geoip.h:161: error: expected constructor, destructor, or type conversion before '*' token
    ../src/node_geoip.h:163: error: expected constructor, destructor, or type conversion before '*' token
    In file included from ../src/city.cc:7:
    ../src/city.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
    ../src/city.h:21: error: expected ';' before '*' token
    ../src/city.h:50: error: ISO C++ forbids declaration of 'GeoIPRecord' with no type
    ../src/city.h:50: error: expected ';' before '*' token
    ../src/country6.cc: In static member function 'static void geoip::Country6::EIO_Country(eio_req*)':
    ../src/country6.cc:134: error: 'struct country6_baton_t' has no member named 'ipnum_v6'
    ../src/country6.cc:134: error: '__GEOIP_V6_IS_NULL' was not declared in this scope
    ../src/country6.cc:137: error: 'class geoip::Country6' has no member named 'db'
    ../src/country6.cc:137: error: 'struct country6_baton_t' has no member named 'ipnum_v6'
    ../src/country6.cc:137: error: 'GeoIP_id_by_ipnum_v6' was not declared in this scope
    ../src/country6.cc: In static member function 'static int geoip::Country6::EIO_AfterCountry(eio_req*)':
    ../src/country6.cc:159: error: 'GeoIP_country_name' was not declared in this scope
    ../src/country6.cc:160: error: 'GeoIP_country_code' was not declared in this scope
    ../src/country6.cc:161: error: 'GeoIP_country_code3' was not declared in this scope
    ../src/country6.cc:162: error: 'GeoIP_country_continent' was not declared in this scope
    ../src/country6.cc: In static member function 'static v8::Handle<v8::Value> geoip::Country6::update(const v8::Arguments&)':
    ../src/country6.cc:194: error: 'class geoip::Country6' has no member named 'db'
    ../src/country6.cc:194: error: 'GEOIP_MEMORY_CACHE' was not declared in this scope
    ../src/country6.cc:194: error: 'GEOIP_STANDARD' was not declared in this scope
    ../src/country6.cc:194: error: 'GeoIP_open' was not declared in this scope
    ../src/country6.cc:196: error: 'class geoip::Country6' has no member named 'db'
    ../src/country6.cc:197: error: 'class geoip::Country6' has no member named 'db'
    ../src/country6.cc:197: error: 'GeoIP_database_edition' was not declared in this scope
    ../src/country6.cc:198: error: 'GEOIP_COUNTRY_EDITION_V6' was not declared in this scope
    ../src/city.cc: In static member function 'static v8::Handle<v8::Value> geoip::City::New(const v8::Arguments&)':
    ../src/city.cc:51: error: 'class geoip::City' has no member named 'db'
    ../src/city.cc:51: error: 'GEOIP_MEMORY_CACHE' was not declared in this scope
    ../src/city.cc:51: error: 'GEOIP_STANDARD' was not declared in this scope
    ../src/city.cc:51: error: 'GeoIP_open' was not declared in this scope
    ../src/city.cc:53: error: 'class geoip::City' has no member named 'db'
    ../src/country6.cc:201: error: 'class geoip::Country6' has no member named 'db'
    ../src/city.cc:54: error: 'class geoip::City' has no member named 'db'
    ../src/country6.cc:201: error: 'GeoIP_delete' was not declared in this scope
    ../src/city.cc:54: error: 'GeoIP_database_edition' was not declared in this scope
    ../src/city.cc:55: error: 'GEOIP_CITY_EDITION_REV0' was not declared in this scope../src/country6.cc:202: error: 'class geoip::Country6' has no member named 'db'

    ../src/city.cc:56: error: 'GEOIP_CITY_EDITION_REV1' was not declared in this scope
    ../src/city.cc:60: error: 'class geoip::City' has no member named 'db'
    ../src/city.cc:60: error: 'GeoIP_delete' was not declared in this scope
    ../src/city.cc:61: error: 'class geoip::City' has no member named 'db'
    ../src/city.cc: In static member function 'static v8::Handle<v8::Value> geoip::City::lookupSync(const v8::Arguments&)':
    ../src/city.cc:78: error: '_GeoIP_lookupaddress' was not declared in this scope
    ../src/country6.cc: In static member function 'static v8::Handle<v8::Value> geoip::Country6::close(const v8::Arguments&)':
    ../src/country6.cc:214: error: 'class geoip::Country6' has no member named 'db'
    ../src/country6.cc:214: error: 'GeoIP_delete' was not declared in this scope
    ../src/country6.cc:215: error: 'class geoip::Country6' has no member named 'db'
    ../src/city.cc:83: error: 'GeoIPRecord' was not declared in this scope
    ../src/city.cc:83: error: 'record' was not declared in this scope
    ../src/city.cc:83: error: 'class geoip::City' has no member named 'db'
    ../src/city.cc:83: error: 'GeoIP_record_by_ipnum' was not declared in this scope
    In file included from ../src/region.h:12,
                     from ../src/region.cc:7:
    ../src/node_geoip.h:20: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:21: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:23: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:24: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:25: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before 'unsigned'
    ../src/node_geoip.h:28: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:29: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:31: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:32: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:39: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:40: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:41: error: 'GEOIP_API' does not name a type
    ../src/node_geoip.h:42: error: expected constructor, destructor, or type conversion before 'int'
    ../src/node_geoip.h:43: error: expected constructor, destructor, or type conversion before 'void'
    ../src/node_geoip.h:44: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:46: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:47: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:48: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:51: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:60: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:61: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before 'const'
    ../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion before 'char'
    ../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before 'char'
    ../src/city.cc: In static member function 'static v8::Handle<v8::Value> geoip::City::lookup(const v8::Arguments&)':
    ../src/city.cc:153: error: '_Geo

NPM installation issue.

Hi, after running npm install geoip (tried sudo, tried -g), I get the repeated error:

make: Entering directory `/home/myuser/myproject/src/node_modules/geoip/build'
  CXX(target) Release/obj.target/geoip/src/global.o
    CXX(target) Release/obj.target/geoip/src/init.o
    In file included from ../src/netspeed.h:12:0,
                     from ../src/init.cc:7:
                     ../src/init.h:7:19: fatal error: GeoIP.h: No such file or directory
                     compilation terminated.
                     make: *** [Release/obj.target/geoip/src/init.o] Error 1
                     make: Leaving directory `/home/myuser/myproject/src/node_modules/geoip/build'                   
                     gyp ERR! build error  
                     gyp ERR! stack Error: `make` failed with exit code: 2
                     gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23) 
                     gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
                     gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:757:12)             
                     gyp ERR! System Linux 3.5.0-17-generic
                     gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
                     gyp ERR! cwd /home/myuser/myproject/src/node_modules/geoip
                     gyp ERR! node -v v0.10.2
                     gyp ERR! node-gyp -v v0.9.3
                     gyp ERR! not ok 
                     npm ERR! [email protected] install: `node-gyp rebuild`
                     npm ERR! `sh "-c" "node-gyp rebuild"` failed with 1
                     npm ERR! 
                     npm ERR! Failed at the [email protected] install script.
                     npm ERR! This is most likely a problem with the geoip package,
                     npm ERR! not with npm itself. 
                     npm ERR! Tell the author that this fails on your system:
                     npm ERR!     node-gyp rebuild
                     npm ERR! You can get their info via:
                     npm ERR!     npm owner ls geoip
                     npm ERR! There is likely additional logging output above.

                     npm ERR! System Linux 3.5.0-17-generic 
                     npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "geoip"                   
                     npm ERR! cwd /home/myuser/myproject/src
                     npm ERR! node -v v0.10.2
                     npm ERR! npm -v 1.2.15
                     npm ERR! code ELIFECYCLE
                     npm ERR!
                     npm ERR! Additional logging details can be found in:
                     npm ERR!     /home/myuser/myproject/src/npm-debug.log
                     npm ERR! not ok code 0

Any ideas? Thanks.

GeoIP_lib_version

The function GeoIP_lib_version is only defined in version 1.4.7 of their API, so the module breaks if the available library is an earlier version (the version of libgeoip in the main ubuntu repository, for example, is still 1.4.6). Maybe there could be some workaround for if it's not present?

Segfault on async lookup

I upgraded to the latest node version, and now the geoip async lookup calls cause a segfault. Here is some sample code:

var geoip     = require('geoip');
var country = new geoip.Country('./geoip.dat');
country.lookup('127.0.0.1', function(err, country_obj) {
  if(err) throw err;
  console.log(country_obj);
});

Running this results in:

$ node testcase.js 
Segmentation fault
$ node -v
v0.6.7
$ npm ls | grep geoip
├── [email protected] 

The lookupSync calls still work as expected. I'm using GeoIP-1.4.8 by the way.

Segfault on City.lookupSync

Starting with version 0.4.7 I'm seeing a lot of segmentation faults when using City.lookupSync

Here's a quick test script:

var city = new (require('geoip').City)('/path/to/GeoIPCity.dat');

for(var j = 100; --j;){
  var ip = [1,1,1,1].map(function(){return 0|Math.random()*256}).join('.');
  console.log(ip);
  city.lookupSync(ip);
}

Usually fails within the first 10 tests.

I'm using libgeoip version 1.4.8. Version 0.4.6 seems to work fine.

SpeedCell support?

I see the netspeed binaries are supported, but not the version with cellular data. Could this support be added?

Cannot install using npm 1.0

Not sure what's going on here.

$ sudo npm install geoip
npm info it worked if it ends with ok
npm info using [email protected]
npm info using [email protected]
npm info addNamed [ 'geoip', '>=0.3.1' ]
npm info into /Users/Charlie/OpenSource/maptail [email protected]
npm info installOne [email protected]
npm info unbuild /Users/Charlie/OpenSource/maptail/node_modules/geoip
npm info preinstall [email protected]

> [email protected] preinstall /Users/Charlie/OpenSource/maptail/node_modules/geoip
> node-waf clean || true; node-waf configure build

Nothing to clean (project not configured)
Checking for program g++ or c++          : /usr/bin/g++ 
Checking for program cpp                 : /usr/bin/cpp 
Checking for program ar                  : /usr/bin/ar 
Checking for program ranlib              : /usr/bin/ranlib 
Checking for g++                         : ok  
Checking for node path                   : not found 
Checking for node prefix                 : ok /usr/local 
'configure' finished successfully (0.052s)
Waf: Entering directory `/Users/Charlie/OpenSource/maptail/node_modules/geoip/build'
[1/9] cxx: src/init.cc -> build/default/src/init_1.o
[2/9] cxx: src/netspeed.cc -> build/default/src/netspeed_1.o
[3/9] cxx: src/country.cc -> build/default/src/country_1.o
[4/9] cxx: src/region.cc -> build/default/src/region_1.o
In file included from ../src/netspeed.h:12,
                 from ../src/init.cc:7:
../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
In file included from ../src/netspeed.h:12,
                 from ../src/netspeed.cc:7:
../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
In file included from ../src/country.h:12,
                 from ../src/country.cc:7:
../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
In file included from ../src/region.h:12,
                 from ../src/region.cc:7:
../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
In file included from ../src/country.h:12,
                 from ../src/country.cc:7:
../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:28: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:30: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:31: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:32: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:34: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:35: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:36: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:39: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:46: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:47: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:48: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:51: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:53: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:54: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:58: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before ‘const’In file included from ../src/netspeed.h:12,
                 from ../src/init.cc:7:
../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before ‘unsigned’

../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:28: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:30: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:66: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:31: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion before ‘const’../src/node_geoip.h:32: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:34: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:35: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:36: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:39: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:46: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:47: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:48: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:51: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:53: error: expected constructor, destructor, or type conversion before ‘c
../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:70: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:71: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:74: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:75: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:76: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:80: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:81: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:82: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:84: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:85: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:86: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:88: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:89: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:90: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:92: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:93: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:94: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:97: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:99: error: expected constructor, destructor, or type conversion before ‘void?onst’
../src/node_geoip.h:54: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:58: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before ‘const’
??
../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:101: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:66: error: expected constructor, destructor, or type conversion before ‘const’../src/node_geoip.h:104: error: expected constructor, destructor, or type conversion before ‘char’

../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion ../src/node_geoip.h:105: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:106: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:108: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:109: error: expected constructor, destructor, or type conversion before ‘char’
before ‘const’
../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:70: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:110: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:113: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:116: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:119: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:122: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:125: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:128: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:131: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:133: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:134: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:136: error: expected constructor, destructor, or type coIn file included from ../src/netspeed.h:12,
                 from ../src/netspeed.cc:7:
../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:28: error: expected constructor, destructor, or type conversion before ‘unsigned’
nversion before ‘int’../src/node_geoip.h:30: error: expected constructor, destructor, or type conversion before ‘unsigned’

../src/node_geoip.h:31: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:137: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:32: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:138: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:34: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:35: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:139: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:36: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:141: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before ‘void’../src/node_geoip.h:142: error: expected constructor, destructor, or type conversion before ‘char’

../src/node_geoip.h:39: error: expected constructor, destructor, or type conversion before ‘char’../src/node_geoip.h:143: error: expected constructor, destructor, or type conversion before ‘void’

../src/node_geoip.h:146: error: expected constructor, destructor, or type conversion before ‘const’../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before ‘void’

../src/node_geoip.h:46: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:47: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:149: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:48: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:152: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:153: error: expected constructor, destructor, or type conversion before ‘char’../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before ‘void’

../src/node_geoip.h:51: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion before ‘const’../src/node_geoip.h:160: error: expected constructor, destructor, or type conversion before ‘int’

../src/node_geoip.h:53: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:166: error: expected constructor, destructor, or type conversion before ‘*’ token
../src/node_geoip.h:167: error: expected constructor, destructor, or type conversion before ‘*’ token
../src/node_geoip.h:54: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before ‘const’
In file included from ../src/country.cc:7:
../src/country.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/country.h:21: error: expected ‘;’ before ‘*’ token
../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:58: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:71: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:66: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:70: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:71: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:74: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:74: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:75: error: expected constructor, destructor, or type conversion before ‘char’../src/node_geoip.h:75: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:76: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:80: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:81: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:82: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:84: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:85: error: expected constructor, destructor, or type conversion before ‘int’

../src/node_geoip.h:86: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:88: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:89: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:90: error: ‘GEOIP_API’ does not name a typ../src/node_geoip.h:76: error: expected constructor, destructor, or type conversion before ‘char’
e
../src/node_geoip.h:92: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:93: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:94: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:97: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:99: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:101: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:104: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:80: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:105: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:81: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:106: error: expected constructor, destructor, or type conversion before ../src/node_geoip.h:82: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:84: error: expected constructor, destructor, or type conversion before ‘int’
‘char’
../src/node_geoip.h:108: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:109: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:110: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:113: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:116: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:119: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:85: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:122: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:86: error: expected constructor, destructor, or type conversion before ‘int’../src/node_geoip.h:125: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:128: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:131: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:133: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:134: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:136: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:137: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:138: error: expected constructor, destructor, or type conversion before ‘int’

../src/node_geoip.h:139: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:88: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:141: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:89: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:142: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:143: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:146: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:149: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:152: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:153: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:160: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:90: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:92: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:166: error: expected constructor, destructor, or type conversion before ‘*’ token
../src/node_geoip.h:167: error: expected constructor, destructor, or type conversion before ‘*’ token
In file included from ../src/netspeed.cc:7:
../src/netspeed.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/netspeed.h:21: error: expected ‘;’ before ‘*’ token
../src/node_geoip.h:93: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:94: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:97: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:99: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:101: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:104: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:105: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:106: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:108: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:109: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:110: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:113: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:116: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:119: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:122: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:125: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:128: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:131: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:133: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:134: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:136: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:137: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:138: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:139: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:141: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:142: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:143: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:146: error: expected constructor, destructor, or type conversion before ‘const’
../src/country.cc: In static member function ‘static v8::Handle<v8::Value> geoip::Country::New(const v8::Arguments&)’:
../src/country.cc:46: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:46: error: ‘GEOIP_MEMORY_CACHE’ was not declared in this scope
../src/country.cc:46: error: ‘GEOIP_STANDARD’ was not declared in this scope
../src/country.cc:46: error: ‘GeoIP_open’ was not declared in this scope
../src/country.cc:48: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:49: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:49: error: ‘GeoIP_database_edition’ was not declared in this scope
../src/country.cc:50: error: ‘GEOIP_COUNTRY_EDITION’ was not declared in this scope
../src/country.cc:51: error: ‘GEOIP_COUNTRY_EDITION_V6’ was not declared in this scope
../src/country.cc:52: error: ‘GEOIP_CITY_EDITION_REV0’ was not declared in this scope
../src/country.cc:53: error: ‘GEOIP_CITY_EDITION_REV1’ was not declared in this scope
../src/country.cc:57: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:57: error: ‘GeoIP_delete’ was not declared in this scope
../src/country.cc:58: error: ‘class geoip::Country’ has no member named ‘db’
In file included from ../src/region.h:12,
                 from ../src/region.cc:7:
../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:28: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:30: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:31: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:32: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:34: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:35: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:36: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:39: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:46: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:47: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:48: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:51: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:53: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:54: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:58: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:66: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:70: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:71: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:74: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:75: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:76: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:80: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:81: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:82: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:84: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:85: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:86: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:88: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:89: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:90: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:92: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:93: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:94: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:97: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:99: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:101: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:104: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:105: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:106: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:108: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:109: error: expected constructor, destructor, or type conversion before ‘char’
../src/country.cc: In static member function ‘static v8::Handle<v8::Value> geoip::Country::lookupSync(const v8::Arguments&)’:
../src/country.cc:76: error: ‘_GeoIP_lookupaddress’ was not declared in this scope
../src/node_geoip.h:110: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:113: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:116: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:119: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:122: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:125: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:128: error: expected constructor, destructor, or type conversion before ‘int’
../src/country.cc:81: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:81: error: ‘GeoIP_id_by_ipnum’ was not declared in this scope../src/node_geoip.h:131: error: expected constructor, destructor, or type conversion before ‘unsigned’

../src/node_geoip.h:133: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:134: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/netspeed.cc: In static member function ‘static v8::Handle<v8::Value> geoip::NetSpeed::New(const v8::Arguments&)’:
../src/netspeed.cc:46: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/node_geoip.h:136: error: expected constructor, destructor, or type conversion before ‘int’
../src/netspeed.cc:46: error: ‘GEOIP_MEMORY_CACHE’ was not declared in this scope
../src/node_geoip.h:137: error: expected constructor, destructor, or type conversion before ‘int’
../src/netspeed.cc:46: error: ‘GEOIP_STANDARD’ was not declared in this scope
../src/node_geoip.h:138: error: expected constructor, destructor, or type conversion before ‘int’
../src/netspeed.cc:46: error: ‘GeoIP_open’ was not declared in this scope
../src/node_geoip.h:139: error: expected constructor, destructor, or type conversion before ‘int’
../src/netspeed.cc:48: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/node_geoip.h:141: error: expected constructor, destructor, or type conversion before ‘int’
../src/netspeed.cc:49: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/netspeed.cc:49: error: ‘GeoIP_database_edition’ was not declared in this scope../src/node_geoip.h:142: error: expected constructor, destructor, or type conversion before ‘char’

../src/node_geoip.h:143: error: expected constructor, destructor, or type conversion before ‘void’../src/netspeed.cc:50: error: ‘GEOIP_NETSPEED_EDITION’ was not declared in this scope

../src/node_geoip.h:146: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:149: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:152: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:153: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:160: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:166: error: expected constructor, destructor, or type conversion before ‘*’ token
../src/node_geoip.h:167: error: expected constructor, destructor, or type conversion before ‘*’ token
../src/country.cc:85: error: ‘GeoIP_country_code’ was not declared in this scope
In file included from ../src/region.cc:7:
../src/region.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/region.h:21: error: expected ‘;’ before ‘*’ token
../src/netspeed.cc:54: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/country.cc:86: error: ‘GeoIP_country_code3’ was not declared in this scope
../src/netspeed.cc:54: error: ‘GeoIP_delete’ was not declared in this scope
../src/netspeed.cc:55: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/country.cc:87: error: ‘GeoIP_country_name’ was not declared in this scope
../src/region.h:46: error: ISO C++ forbids declaration of ‘GeoIPRegion’ with no type
../src/region.h:46: error: expected ‘;’ before ‘*’ token
../src/node_geoip.h:149: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:152: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:153: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:160: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:166: error: expected constructor, destructor, or type conversion before ‘*’ token
../src/node_geoip.h:167: error: expected constructor, destructor, or type conversion before ‘*’ token
In file included from ../src/init.cc:7:
../src/netspeed.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/netspeed.h:21: error: expected ‘;’ before ‘*’ token
In file included from ../src/init.cc:8:../src/country.cc:88: error: ‘GeoIP_country_continent’ was not declared in this scope

../src/country.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/netspeed.cc: In static member function ‘static v8::Handle<v8::Value> geoip::NetSpeed::lookupSync(const v8::Arguments&)’:
../src/netspeed.cc:73: error: ‘_GeoIP_lookupaddress’ was not declared in this scope
../src/country.h:21: error: expected ‘;’ before ‘*’ token
In file included from ../src/init.cc:9:
../src/region.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/region.h:21: error: expected ‘;’ before ‘*’ token
../src/netspeed.cc:79: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/netspeed.cc:79: error: ‘GeoIP_id_by_ipnum’ was not declared in this scope
../src/netspeed.cc:82: error: ‘GEOIP_UNKNOWN_SPEED’ was not declared in this scope
../src/region.h:46: error: ISO C++ forbids declaration of ‘GeoIPRegion’ with no type
../src/region.h:46: error: expected ‘;’ before ‘*’ token
In file included from ../src/init.cc:10:
../src/city.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/city.h:21: error: expected ‘;’ before ‘*’ token
../src/city.h:48: error: ISO C++ forbids declaration of ‘GeoIPRecord’ with no type
../src/city.h:48: error: expected ‘;’ before ‘*’ token
In file included from ../src/init.cc:11:
../src/org.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/org.h:21: error: expected ‘;’ before ‘*’ token
../src/netspeed.cc:84: error: ‘GEOIP_DIALUP_SPEED’ was not declared in this scope
../src/netspeed.cc:86: error: ‘GEOIP_CABLEDSL_SPEED’ was not declared in this scope
../src/country.cc: In static member function ‘static int geoip::Country::EIO_Country(eio_req*)’:
../src/country.cc:125: error: ‘_GeoIP_lookupaddress’ was not declared in this scope
../src/netspeed.cc:88: error: ‘GEOIP_CORPORATE_SPEED’ was not declared in this scope
../src/country.cc:129: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:129: error: ‘GeoIP_id_by_ipnum’ was not declared in this scope
../src/region.cc: In static member function ‘static v8::Handle<v8::Value> geoip::Region::New(const v8::Arguments&)’:
../src/region.cc:44: error: ‘class geoip::Region’ has no member named ‘db’
../src/region.cc:44: error: ‘GEOIP_MEMORY_CACHE’ was not declared in this scope
../src/region.cc:44: error: ‘GEOIP_STANDARD’ was not declared in this scope
../src/region.cc:44: error: ‘GeoIP_open’ was not declared in this scope
../src/region.cc:46: error: ‘class geoip::Region’ has no member named ‘db’
../src/region.cc:48: error: ‘class geoip::Region’ has no member named ‘db’
../src/region.cc:48: error: ‘GeoIP_database_edition’ was not declared in this scope
../src/region.cc:49: error: ‘GEOIP_REGION_EDITION_REV0’ was not declared in this scope
../src/region.cc:50: error: ‘GEOIP_REGION_EDITION_REV1’ was not declared in this scope
../src/country.cc: In static member function ‘static int geoip::Country::EIO_AfterCountry(eio_req*)’:
../src/country.cc:149: error: ‘GeoIP_country_code’ was not declared in this scope
../src/region.cc:54: error: ‘class geoip::Region’ has no member named ‘db’
../src/region.cc:54: error: ‘GeoIP_delete’ was not declared in this scope
../src/country.cc:150: error: ‘GeoIP_country_code3’ was not declared in this scope
../src/region.cc:55: error: ‘class geoip::Region’ has no member named ‘db’
../src/country.cc:151: error: ‘GeoIP_country_name’ was not declared in this scope
../src/country.cc:152: error: ‘GeoIP_country_continent’ was not declared in this scope
../src/country.cc: In static member function ‘static v8::Handle<v8::Value> geoip::Country::close(const v8::Arguments&)’:
../src/country.cc:174: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:174: error: ‘GeoIP_delete’ was not declared in this scope
../src/country.cc:175: error: ‘class geoip::Country’ has no member named ‘db’
../src/region.cc: In static member function ‘static v8::Handle<v8::Value> geoip::Region::lookupSync(const v8::Arguments&)’:
../src/region.cc:73: error: ‘_GeoIP_lookupaddress’ was not declared in this scope
../src/netspeed.cc: In static member function ‘static int geoip::NetSpeed::EIO_NetSpeed(eio_req*)’:
../src/netspeed.cc:125: error: ‘_GeoIP_lookupaddress’ was not declared in this scope
../src/netspeed.cc:129: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/netspeed.cc:129: error: ‘GeoIP_id_by_ipnum’ was not declared in this scope
../src/netspeed.cc: In static member function ‘static int geoip::NetSpeed::EIO_AfterNetSpeed(eio_req*)’:
../src/netspeed.cc:149: error: ‘GEOIP_UNKNOWN_SPEED’ was not declared in this scope
../src/netspeed.cc:151: error: ‘GEOIP_DIALUP_SPEED’ was not declared in this scope
../src/netspeed.cc:153: error: ‘GEOIP_CABLEDSL_SPEED’ was not declared in this scope
../src/netspeed.cc:155: error: ‘GEOIP_CORPORATE_SPEED’ was not declared in this scope
../src/netspeed.cc: In static member function ‘static v8::Handle<v8::Value> geoip::NetSpeed::close(const v8::Arguments&)’:
../src/netspeed.cc:179: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/netspeed.cc:179: error: ‘GeoIP_delete’ was not declared in this scope
../src/netspeed.cc:180: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/region.cc:79: error: ‘GeoIPRegion’ was not declared in this scope
../src/region.cc:79: error: ‘region’ was not declared in this scope
../src/region.cc:79: error: ‘class geoip::Region’ has no member named ‘db’
../src/region.cc:79: error: ‘GeoIP_region_by_ipnum’ was not declared in this scope
../src/region.cc: In static member function ‘static int geoip::Region::EIO_Region(eio_req*)’:
../src/region.cc:121: error: ‘_GeoIP_lookupaddress’ was not declared in this scope
../src/region.cc:123: error: ‘struct region_baton_t’ has no member named ‘region’
../src/region.cc:125: error: ‘struct region_baton_t’ has no member named ‘region’
../src/region.cc:125: error: ‘class geoip::Region’ has no member named ‘db’
../src/region.cc:125: error: ‘GeoIP_region_by_ipnum’ was not declared in this scope
../src/region.cc: In static member function ‘static int geoip::Region::EIO_AfterRegion(eio_req*)’:
../src/region.cc:140: error: ‘struct region_baton_t’ has no member named ‘region’
../src/region.cc:145: error: ‘struct region_baton_t’ has no member named ‘region’
../src/region.cc:146: error: ‘struct region_baton_t’ has no member named ‘region’
../src/region.cc: In static member function ‘static v8::Handle<v8::Value> geoip::Region::close(const v8::Arguments&)’:
../src/region.cc:168: error: ‘class geoip::Region’ has no member named ‘db’
../src/region.cc:168: error: ‘GeoIP_delete’ was not declared in this scope
../src/region.cc:169: error: ‘class geoip::Region’ has no member named ‘db’
Waf: Leaving directory `/Users/Charlie/OpenSource/maptail/node_modules/geoip/build'
Build failed:
 -> task failed (err #1): 
    {task: cxx country.cc -> country_1.o}
 -> task failed (err #1): 
    {task: cxx init.cc -> init_1.o}
 -> task failed (err #1): 
    {task: cxx netspeed.cc -> netspeed_1.o}
 -> task failed (err #1): 
    {task: cxx region.cc -> region_1.o}
npm info [email protected] Failed to exec preinstall script
npm ERR! error installing [email protected] Error: [email protected] preinstall: `node-waf clean || true; node-waf configure build`
npm ERR! error installing [email protected] `sh "-c" "node-waf clean || true; node-waf configure build"` failed with 1
npm ERR! error installing [email protected]     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/exec.js:49:20)
npm ERR! error installing [email protected]     at ChildProcess.emit (events.js:67:17)
npm ERR! error installing [email protected]     at ChildProcess.onexit (child_process.js:192:12)
npm info unbuild /Users/Charlie/OpenSource/maptail/node_modules/geoip
npm info preuninstall [email protected]
npm info uninstall [email protected]
npm info postuninstall [email protected]
npm ERR! [email protected] preinstall: `node-waf clean || true; node-waf configure build`
npm ERR! `sh "-c" "node-waf clean || true; node-waf configure build"` failed with 1
npm ERR! 
npm ERR! Failed at the [email protected] preinstall script.
npm ERR! This is most likely a problem with the geoip package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-waf clean || true; node-waf configure build
npm ERR! You can get their info via:
npm ERR!     npm owner ls geoip
npm ERR! There is likely additional logging output above.
npm ERR! 
npm ERR! System Darwin 10.7.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "geoip"
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/Charlie/OpenSource/maptail/npm-debug.log
npm not ok

ipv6 support

I noticed that Maxmind provides an IPv6 DB as well. Does this library support IPv6?

Thanks

Memory leaks

We've got a long running process using GeoIP that leaks memory.

Valgrind shows the following leaks on a minimal lookupSync.

var geoip = require('geoip')
  , city = new geoip.City('/etc/GeoIPCity.dat');

console.log(city.lookupSync('8.8.8.8'));
...
==28923== 14 bytes in 1 blocks are definitely lost in loss record 8 of 41
==28923==    at 0x4C2ABC8: malloc (vg_replace_malloc.c:263)
==28923==    by 0x7911E7D: _GeoIP_iso_8859_1__utf8 (GeoIP.c:434)
==28923==    by 0x76FF504: geoip::City::lookupSync(v8::Arguments const&) (city.cc:106)
==28923==    by 0x50E8C9D: ??? (in /usr/lib64/libv8.so.3.13.6)
...
==28923== 111 (88 direct, 23 indirect) bytes in 1 blocks are definitely lost in loss record 24 of 41
==28923==    at 0x4C2ABC8: malloc (vg_replace_malloc.c:263)
==28923==    by 0x791418F: _extract_record (GeoIPCity.c:61)
==28923==    by 0x76FF210: geoip::City::lookupSync(v8::Arguments const&) (city.cc:83)
==28923==    by 0x50E8C9D: ??? (in /usr/lib64/libv8.so.3.13.6)
...
==28923== 175 (40 direct, 135 indirect) bytes in 1 blocks are definitely lost in loss record 27 of 41
==28923==    at 0x4C2A75E: operator new(unsigned long) (vg_replace_malloc.c:287)
==28923==    by 0x76FED69: geoip::City::New(v8::Arguments const&) (city.cc:41)
==28923==    by 0x50E92BD: ??? (in /usr/lib64/libv8.so.3.13.6)
...

Here's what I dug up after having a look at city.cc

  • _GeoIP_iso_8859_1__utf8 leaks memory on this line - the char* it returns needs to be free()'d
  • GeoIPRecord_delete(record) should be called before returning from lookupSync.
  • close() (which contains the GeoIP_delete(db)) should be called in City::~City() or at least exposed

I didn't submit a pull request with the fixes because there's probably memory leaks elsewhere in the bindings and I haven't got the relevant GeoIP database versions to work with.

install fails

Hi,

Install fails on a ubuntu machine, I have libgeoip 1.4.8 installed and get the error below:

Anyone has a clue how to fix it?

npm http GET https://github.com/kuno/geoip/tarball/master
npm http 200 https://github.com/kuno/geoip/tarball/master

[email protected] preinstall PATH/node_modules/geoip
node-waf clean || (exit 0); node-waf configure build

Nothing to clean (project not configured)
Checking for program g++ or c++ : /usr/bin/g++
Checking for program cpp : /usr/bin/cpp
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Checking for g++ : ok
Checking for node path : not found
Checking for node prefix : ok /usr
'configure' finished successfully (0.041s)
Waf: Entering directory PATH/node_modules/geoip/build' [ 1/11] cxx: src/init.cc -> build/Release/src/init_1.o [ 2/11] cxx: src/netspeed.cc -> build/Release/src/netspeed_1.o [ 3/11] cxx: src/country6.cc -> build/Release/src/country6_1.o [ 4/11] cxx: src/country.cc -> build/Release/src/country_1.o [ 5/11] cxx: src/region.cc -> build/Release/src/region_1.o [ 6/11] cxx: src/city6.cc -> build/Release/src/city6_1.o ../src/city6.cc: In static member function 'static v8::Handle<v8::Value> geoip::City6::New(const v8::Arguments&)': ../src/city6.cc:55: error: 'GEOIP_CITY_EDITION_REV0_V6' was not declared in this scope ../src/city6.cc:56: error: 'GEOIP_CITY_EDITION_REV1_V6' was not declared in this scope ../src/city6.cc: In static member function 'static v8::Handle<v8::Value> geoip::City6::update(const v8::Arguments&)': ../src/city6.cc:288: error: 'GEOIP_CITY_EDITION_REV0_V6' was not declared in this scope ../src/city6.cc:289: error: 'GEOIP_CITY_EDITION_REV1_V6' was not declared in this scope Waf: Leaving directoryPATH/node_modules/geoip/build'
Build failed: -> task failed (err #1):
{task: cxx city6.cc -> city6_1.o}
npm ERR! error installing [email protected]

npm ERR! [email protected] preinstall: node-waf clean || (exit 0); node-waf configure build
npm ERR! sh "-c" "node-waf clean || (exit 0); node-waf configure build" failed with 1
npm ERR!
npm ERR! Failed at the [email protected] preinstall script.
npm ERR! This is most likely a problem with the geoip package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-waf clean || (exit 0); node-waf configure build
npm ERR! You can get their info via:
npm ERR! npm owner ls geoip
npm ERR! There is likely additional logging output above.
npm ERR!
npm ERR! System Linux 2.6.32-33-server
npm ERR! command "node" "/usr/bin/npm" "install" "https://github.com/kuno/geoip/tarball/master"
npm ERR! cwd /home/jolien/web/jolioriginals.com/notifications
npm ERR! node -v v0.6.12
npm ERR! npm -v 1.1.0-2
npm ERR! code ELIFECYCLE
npm ERR! message [email protected] preinstall: node-waf clean || (exit 0); node-waf configure build
npm ERR! message sh "-c" "node-waf clean || (exit 0); node-waf configure build" failed with 1
npm ERR! errno {}
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! PATH/npm-debug.log
npm not ok

Newbie issue. ReferenceError: geoip is not defined

Hi,

I'm a nodejs newbie and I'm playing with railwayjs with GeoIP.

I've done

sudo npm install geoip

Then in my controller, I've got

require('geoip'); // this doesn't return any error as a module that is not found

then

var City = geoip.City;
var citydata = new City('../../data/geo/GeoLiteCity.dat');

And I'm getting the error in the title.

Thanks for helping a newbie like me.

EC2 installation issues

Hi,

first of all I am fairly new to NodeJs, so it might be something obvious. This is what I get when trying to follow installation instructions:

npm install geoip [-g]
npm ERR! Error: 404 Not Found: %5B-g%5D
npm ERR! at IncomingMessage. (/usr/share/npm/lib/utils/registry/request.js:149:16)
npm ERR! at IncomingMessage.emit (events.js:81:20)
npm ERR! at HTTPParser.onMessageComplete (http.js:133:23)
npm ERR! at Client.onData as ondata
npm ERR! at Client._onReadable (net.js:683:27)
npm ERR! at IOWatcher.onReadable as callback
npm ERR! 404
npm ERR! 404 Looks like '%5B-g%5D' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it.
npm ERR! 404 Note that you can also install from a tarball or local folder.
npm ERR! 404
npm not ok

This is in EC2, Ubuntu 11.10 64 bit in us-east-1 region.

Can you point me into the right direction?

Tomek

npm install fails on 0.6.7

Tried both:

% npm install geoip

and

% npm install https://github.com/kuno/geoip/tarball/master

Both failing on OSX, with this (compiled and successfully installed maxmind tools again )...

[ 1/11] cxx: src/init.cc -> build/Release/src/init_1.o
[ 2/11] cxx: src/netspeed.cc -> build/Release/src/netspeed_1.o
[ 3/11] cxx: src/country6.cc -> build/Release/src/country6_1.o
[ 4/11] cxx: src/country.cc -> build/Release/src/country_1.o
[ 5/11] cxx: src/region.cc -> build/Release/src/region_1.o
[ 6/11] cxx: src/city6.cc -> build/Release/src/city6_1.o
[ 7/11] cxx: src/city.cc -> build/Release/src/city_1.o
../src/city6.cc: In static member function ‘static v8::Handlev8::Value geoip::City6::New(const v8::Arguments&)’:
../src/city6.cc:55: error: ‘GEOIP_CITY_EDITION_REV0_V6’ was not declared in this scope
../src/city6.cc:56: error: ‘GEOIP_CITY_EDITION_REV1_V6’ was not declared in this scope
../src/city6.cc: In static member function ‘static v8::Handlev8::Value geoip::City6::update(const v8::Arguments&)’:
../src/city6.cc:274: error: ‘GEOIP_CITY_EDITION_REV0_V6’ was not declared in this scope
../src/city6.cc:275: error: ‘GEOIP_CITY_EDITION_REV1_V6’ was not declared in this scope

Mac OS 10.7 Node v0.6.10 libgeoip 1.4.7 Install error

when i rebuild my nodejs project, it throw an error.

dreampuf@HX:~/hub/GeoIP$ node-waf build
Waf: Entering directory `/Users/dreampuf/hub/GeoIP/build'
[ 1/11] cxx: src/init.cc -> build/Release/src/init_1.o
[ 2/11] cxx: src/netspeed.cc -> build/Release/src/netspeed_1.o
[ 3/11] cxx: src/country6.cc -> build/Release/src/country6_1.o
[ 4/11] cxx: src/country.cc -> build/Release/src/country_1.o
In file included from ../src/netspeed.h:12,
from ../src/init.cc:7:
../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
In file included from ../src/netspeed.h:12,
from ../src/netspeed.cc:7:
../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
In file included from ../src/country6.h:12,
from ../src/country6.cc:7:
../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
In file included from ../src/country.h:12,
from ../src/country.cc:7:
../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
In file included from ../src/netspeed.h:12,
from ../src/netspeed.cc:7:
../src/node_geoip.h:20: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:21: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:23: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:24: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:25: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:28: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:29: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:31: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:32: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:39: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:40: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:41: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:42: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:43: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:44: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:46: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:47: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:48: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:51: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:60: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:61: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:73: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:74: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:75: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:77: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:78: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:79: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:81: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:82: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:83: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:85: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:86: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:87: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:90: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:92: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:94: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:97: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:98: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:99: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:101: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:102: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:103: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:106: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:109: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:112: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:115: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:118: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:121: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:124: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:126: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:127: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:129: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:130: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:131: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:132: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:134: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:135: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:136: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:139: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:142: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:145: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:146: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:153: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:156: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:160: error: expected constructor, destructor, or type conversion before ‘’ token
../src/node_geoip.h:161: error: expected constructor, destructor, or type conversion before ‘
’ token
../src/node_geoip.h:163: error: expected constructor, destructor, or type conversion before ‘’ token
In file included from ../src/netspeed.cc:7:
../src/netspeed.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/netspeed.h:21: error: expected ‘;’ before ‘
’ token
../src/netspeed.cc: In static member function ‘static v8::Handlev8::Value geoip::NetSpeed::New(const v8::Arguments&)’:
../src/netspeed.cc:50: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/netspeed.cc:50: error: ‘GEOIP_MEMORY_CACHE’ was not declared in this scope
../src/netspeed.cc:50: error: ‘GEOIP_STANDARD’ was not declared in this scope
../src/netspeed.cc:50: error: ‘GeoIP_open’ was not declared in this scope
../src/netspeed.cc:52: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/netspeed.cc:53: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/netspeed.cc:53: error: ‘GeoIP_database_edition’ was not declared in this scope
../src/netspeed.cc:54: error: ‘GEOIP_NETSPEED_EDITION’ was not declared in this scope
../src/netspeed.cc:58: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/netspeed.cc:58: error: ‘GeoIP_delete’ was not declared in this scope
../src/netspeed.cc:59: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/netspeed.cc: In static member function ‘static v8::Handlev8::Value geoip::NetSpeed::lookupSync(const v8::Arguments&)’:
../src/netspeed.cc:77: error: ‘_GeoIP_lookupaddress’ was not declared in this scope
../src/netspeed.cc:83: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/netspeed.cc:83: error: ‘GeoIP_id_by_ipnum’ was not declared in this scope
../src/netspeed.cc:86: error: ‘GEOIP_UNKNOWN_SPEED’ was not declared in this scope
../src/netspeed.cc:88: error: ‘GEOIP_DIALUP_SPEED’ was not declared in this scope
../src/netspeed.cc:90: error: ‘GEOIP_CABLEDSL_SPEED’ was not declared in this scope
../src/netspeed.cc:92: error: ‘GEOIP_CORPORATE_SPEED’ was not declared in this scope
In file included from ../src/netspeed.h:12,
from ../src/init.cc:7:
../src/node_geoip.h:20: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:21: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:23: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:24: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:25: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:28: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:29: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:31: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:32: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:39: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:40: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:41: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:42: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:43: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:44: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:46: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:47: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:48: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:51: error: expected constructor, destructor, or type con../src/netspeed.cc: In static member function ‘static v8::Handlev8::Value geoip::NetSpeed::lookup(const v8::Arguments&)’:
../src/netspeed.cc:111: error: ‘_GeoIP_lookupaddress’ was not declared in this scope
version before ‘const’
../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before ‘const’../src/netspeed.cc: In static member function ‘static void geoip::NetSpeed::EIO_NetSpeed(eio_req*)’:
../src/netspeed.cc:129: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/netspeed.cc:129: error: ‘GeoIP_id_by_ipnum’ was not declared in this scope

../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:60: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:61: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion befor../src/netspeed.cc: In static member function ‘static int geoip::NetSpeed::EIO_AfterNetSpeed(eio_req_)’:
../src/netspeed.cc:149: error: ‘GEOIP_UNKNOWN_SPEED’ was not declared in this scope
../src/netspeed.cc:151: error: ‘GEOIP_DIALUP_SPEED’ was not declared in this scope
../src/netspeed.cc:153: error: ‘GEOIP_CABLEDSL_SPEED’ was not declared in this scope
../src/netspeed.cc:155: error: ‘GEOIP_CORPORATE_SPEED’ was not declared in this scope
e ‘char’
../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:73: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:74: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:75: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:77: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:78: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:79: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:81: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:82: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:83: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:85: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:86: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:87: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:90: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:92: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:94: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:97: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:98: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:99: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:101: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:102: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:103: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:106: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:109: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:112: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:115: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:118: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:121: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:124: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:126: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:127: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:129: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:130: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:131: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:132: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:134: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:135: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:136: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:139: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:142: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:145: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:146: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:153: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:156: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:160: error: expected constructor, destructor, or type conversion before ‘’ token
../src/node_geoip.h:161: error: expected constructor, destructor, or type conversion before ‘
’ token
../src/node_geoip.h:163: error: expected constructor, destructor, or type conversion before ‘_’ token
In file included from ../src/country.h:12,
from ../src/country.cc:7:
../src/node_geoip.h:20: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/netspeed.cc: In static member function ‘static v8::Handlev8::Value geoip::NetSpeed::update(const v8::Arguments&)’:
../src/netspeed.cc:189: error: ‘class geoip::NetSpeed’ has no member named ‘db’
In file included from ../src/init.cc:7:
../src/netspeed.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/netspeed.cc:189: error: ‘GEOIP_MEMORY_CACHE’ was not declared in this scope../src/node_geoip.h:21: error: expected constructor, destructor, or type conversion before ‘unsigned’

../src/netspeed.h:21: error: expected ‘;’ before ‘’ token
../src/netspeed.cc:189: error: ‘GEOIP_STANDARD’ was not declared in this scope
../src/node_geoip.h:23: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/netspeed.cc:189: error: ‘GeoIP_open’ was not declared in this scope
../src/node_geoip.h:24: error: ‘GEOIP_API’ does not name a type
../src/netspeed.cc:191: error: ‘class geoip::NetSpeed’ has no member n../src/node_geoip.h:25: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:28: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:29: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:31: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:32: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:39: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:40: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:41: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:42: error: expected constructor, destructor, or type conversion before ‘int’
In file included from ../src/init.cc:8:
../src/country6.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/node_geoip.h:43: error: expected constructor, destructor, or type conversion before ‘void’
../src/country6.h:21: error: expected ‘;’ before ‘
’ token
../src/node_geoip.h:44: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:46: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:47: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:48: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:51: error: expected constructor, destructor, or type conversion before ‘const’
../src/country6.h:49: error: ‘geoipv6_t’ does not name a type
../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before ‘const’
In file included from ../src/init.cc:9:
../src/country.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before ‘const’
../src/country.h:21: error: expected ‘;’ before ‘*’ token
../src/node_geoip.h:60: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:61: error: expected constructor, destructor, or type conversion before ‘const’amed ‘db’

In file included from ../src/country6.h:12,
from ../src/country6.cc:7:
../src/node_geoip.h:20: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before ‘const’
../src/netspeed.cc:192: error: ‘class geoip::NetSpeed’ has no member named ‘db’../src/node_geoip.h:21: error: expected constructor, destructor, or type conversion before ‘unsigned’

../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before ‘const’
../src/netspeed.cc:192: error: ‘GeoIP_database_edition’ was not declared in this scope
../src/node_geoip.h:23: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before ‘const’
../src/netspeed.cc:193: error: ‘GEOIP_NETSPEED_EDITION’ was not declared in this scope
../src/node_geoip.h:24: error: ‘GEOIP_API’ does not name a type../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion before ‘char’

../src/netspeed.cc:196: error: ‘class geoip::NetSpeed’ has no member named ‘db’
In file included from ../src/init.cc:10:
../src/region.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/netspeed.cc:196: error: ‘GeoIP_delete’ was not declared in this scope
../src/node_geoip.h:25: error: ‘GEOIP_API’ does not name a type../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion before ‘char’

../src/region.h:21: error: expected ‘;’ before ‘*’ token
../src/netspeed.cc:197: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before ‘char’../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before ‘unsigned’

../src/node_geoip.h:../src/region.h:49: error: ISO C++ forbids declaration of ‘GeoIPRegion’ with no type
../src/node_geoip.h:73: error: expected constructor, destructor, or type conversion before ‘int’
../src/region.h:49: error: expected ‘;’ before ‘’ token
../src/node_geoip.h:74: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:75: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:77: error: expected constructor, destructor, or type conversion before ‘int’
In file included from ../src/init.cc:11:
../src/city6.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/node_geoip.h:78: error: expected constructor, destructor, or type conversion before ‘int’
../src/city6.h:21: error: expected ‘;’ before ‘
’ token
../src/node_geoip.h:79: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:81: error: ‘GEOIP_API’ does not name a type
../src/city6.h:50: error: ISO C++ forbids declaration of ‘GeoIPRecord’ with no type
28: error: ‘GEOIP_API’ does not name a type
../src/city6.h:50: error: expected ‘;’ before ‘*’ token
../src/node_geoip.h:82: error: ‘GEOIP_API’ does not name a type
../src/city6.h:51: error: ‘geoipv6_t’ does not name a type
../src/node_geoip.h:29: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:83: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:31: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:85: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:32: error: expected constructor, destructor, or type conversion before ‘char’../src/node_geoip.h:86: error: ‘GEOIP_API’ does not name a type

../src/node_geoip.h:87: error: ‘GEOIP_API’ does not name a typeIn file included from ../src/init.cc:12:
../src/city.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type

../src/netspeed.cc: In static member function ‘static v8::Handlev8::Value geoip::NetSpeed::close(const v8::Arguments&)’:
../src/netspeed.cc:209: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before ‘void’../src/city.h:21: error: expected ‘;’ before ‘*’ token

../src/netspeed.cc:209: error: ‘GeoIP_delete’ was not declared in this scope
../src/node_geoip.h:90: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:39: error: ‘GEOIP_API’ does not name a type
../src/netspeed.cc:210: error: ‘class geoip::NetSpeed’ has no member named ‘db’
../src/node_geoip.h:92: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:40: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:41: error: ‘GEOIP_API’ does not name a type, or type conversion before ‘void’

../src/node_geoip.h:97: error: expected constructor, destructor, or type conversion before ‘char’../src/node_geoip.h:42: error: expected constructor, destructor, or type conversion before ‘int’

../src/node_geoip.h:43: error: expected constructor, destructor, or type conversion before ‘void’../src/node_geoip.h:98: error: expected constructor, destructor, or type conversion before ‘char’

../src/node_geoip.h:44: error: expected constructor, destructor, or type conversion before ‘const’../src/node_geoip.h:99: error: expected constructor, destructor, or type conversion before ‘char’

../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before ‘const’../src/node_geoip.h:101: error: expected constructor, destructor, or type conversion before ‘char’

../src/node_geoip.h:102: error: expected constructor, destructor, or type conversion before ‘char’../src/node_geoip.h:46: error: expected constructor, destructor, or type conversion before ‘const’

../src/city.h:50: error: ISO C++ forbids declaration of ‘GeoIPRecord’ with no type
../src/node_geoip.h:47: error: expected constructor, destructor, or type conversion before ‘const’../src/city.h:50: error: expected ‘;’ before ‘*’ token

../src/node_geoip.h:48: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:51: error: expected constructor, destructor, or type conversion before ‘const’In file included from ../src/init.cc:13:
../src/org.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type

../src/org.h:21: error: expected ‘;’ before ‘’ token
../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion b../src/node_geoip.h:103: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:106: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:109: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:112: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:115: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:118: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:121: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:124: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:126: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:127: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:129: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:130: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:131: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:132: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:134: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:135: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:136: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:139: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:142: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:145: error: expected constructor, destructoefore ‘const’
r, or type conversion before ‘unsigned’
../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:146: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:153: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:156: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:60: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:160: error: expected constructor, destructor, or type conversion before ‘
’ token
../src/node_geoip.h:61: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion before ‘char’
../src/init.cc: In function ‘void init(v8::Handlev8::Object)’:
../src/init.cc:34: error: ‘GeoIP_lib_version’ was not declared in this scope
../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:73: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:74: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:75: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:77: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:78: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:79: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:81: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:82: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:83: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:85: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:86: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:87: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:90: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:92: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:94: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:97: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:98: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:99: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:101: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:102: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:103: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:106: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:109: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:161: error: expected constructor, destructor, or type conversion before ‘’ token
../src/node_geoip.h:163: error: expected constructor, destructor, or type conversion before ‘
’ token../src/node_geoip.h:112: error: expected constructor, destructor, or type conversion before ‘const’

../src/node_geoip.h:115: error: expected constructor, destructor, or type conversion before ‘const’
In file included from ../src/country.cc:7:
../src/country.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/node_geoip.h:118: error: expected constructor, destructor, or type conversion before ‘const’
../src/country.h:21: error: expected ‘;’ before ‘’ token
../src/node_geoip.h:121: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:124: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:126: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:127: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:129: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:130: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:131: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:132: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:134: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:135: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:136: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:139: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:142: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:145: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:146: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:153: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:156: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:160: error: expected constructor, destructor, or type conversion before ‘
’ token
../src/node_geoip.h:161: error: expected constructor, destructor, or type conversion before ‘’ token
../src/node_geoip.h:163: error: expected constructor, destructor, or type conversion before ‘
’ token
In file included from ../src/country6.cc:7:
../src/country6.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/country6.h:21: error: expected ‘;’ before ‘*’ token../src/country.cc: In static member function ‘static v8::Handlev8::Value geoip::Country::New(const v8::Arguments&)’:
../src/country.cc:48: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:48: error: ‘GEOIP_MEMORY_CACHE’ was not declared in this scope
../src/country.cc:48: error: ‘GEOIP_STANDARD’ was not declared in this scope
../src/country.cc:48: error: ‘GeoIP_open’ was not declared in this scope
../src/country.cc:50: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:51: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:51: error: ‘GeoIP_database_edition’ was not declared in this scope
../src/country.cc:52: error: ‘GEOIP_COUNTRY_EDITION’ was not declared in this scope
../src/country.cc:56: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:56: error: ‘GeoIP_delete’ was not declared in this scope
../src/country.cc:57: error: ‘class geoip::Country’ has no member named ‘db’

../src/country6.h:49: error: ‘geoipv6_t’ does not name a type
../src/country.cc: In static member function ‘static v8::Handlev8::Value geoip::Country::lookupSync(const v8::Arguments&)’:
../src/country.cc:75: error: ‘GeoIP_lookupaddress’ was not declared in this scope
../src/country.cc:80: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:80: error: ‘GeoIP_id_by_ipnum’ was not declared in this scope
../src/country.cc:84: error: ‘GeoIP_country_name’ was not declared in this scope
../src/country.cc:85: error: ‘GeoIP_country_code’ was not declared in this scope
../src/country.cc:86: error: ‘GeoIP_country_code3’ was not declared in this scope
../src/country.cc:87: error: ‘GeoIP_country_continent’ was not declared in this scope
../src/country.cc: In static member function ‘static v8::Handlev8::Value geoip::Country::lookup(const v8::Arguments&)’:
../src/country.cc:107: error: ‘GeoIP_lookupaddress’ was not declared in this scope
../src/country.cc: In static member function ‘static void geoip::Country::EIO_Country(eio_req
)’:
../src/country.cc:127: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:127: error: ‘GeoIP_id_by_ipnum’ was not declared in this scope
../src/country.cc: In static member function ‘static int geoip::Country::EIO_AfterCountry(eio_req
)’:
../src/country.cc:147: error: ‘GeoIP_country_name’ was not declared in this scope
../src/country.cc:148: error: ‘GeoIP_country_code’ was not declared in this scope
../src/country.cc:149: error: ‘GeoIP_country_code3’ was not declared in this scope
../src/country.cc:150: error: ‘GeoIP_country_continent’ was not declared in this scope
../src/country6.cc: In static member function ‘static v8::Handlev8::Value geoip::Country6::New(const v8::Arguments&)’:
../src/country6.cc:48: error: ‘class geoip::Country6’ has no member named ‘db’
../src/country6.cc:48: error: ‘GEOIP_MEMORY_CACHE’ was not declared in this scope
../src/country6.cc:48: error: ‘GEOIP_STANDARD’ was not declared in this scope
../src/country6.cc:48: error: ‘GeoIP_open’ was not declared in this scope
../src/country6.cc:50: error: ‘class geoip::Country6’ has no member named ‘db’
../src/country6.cc:51: error: ‘class geoip::Country6’ has no member named ‘db’
../src/country6.cc:51: error: ‘GeoIP_database_edition’ was not declared in this scope
../src/country6.cc:52: error: ‘GEOIP_COUNTRY_EDITION_V6’ was not declared in this scope
../src/country6.cc:56: error: ‘class geoip::Country6’ has no member named ‘db’
../src/country6.cc:56: error: ‘GeoIP_delete’ was not declared in this scope
../src/country6.cc:57: error: ‘class geoip::Country6’ has no member named ‘db’
../src/country.cc: In static member function ‘static v8::Handlev8::Value geoip::Country::update(const v8::Arguments&)’:
../src/country.cc:182: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:182: error: ‘GEOIP_MEMORY_CACHE’ was not declared in this scope
../src/country.cc:182: error: ‘GEOIP_STANDARD’ was not declared in this scope
../src/country.cc:182: error: ‘GeoIP_open’ was not declared in this scope
../src/country.cc:184: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:185: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:185: error: ‘GeoI../src/country6.cc: In static member function ‘static v8::Handlev8::Value geoip::Country6::lookupSync(const v8::Arguments&)’:
../src/country6.cc:71: error: ‘GEOIP_COUNTRY_EDITION_V6’ was not declared in this scope
P_database_edition’ was not declared in this scope
../src/country.cc:186: error: ‘GEOIP_COUNTRY_EDITION’ was not declared in this scope
../src/country.cc:189: error: ‘class geoip::Country’ has no member named ‘db’
../src/country.cc:189: error: ‘GeoIP_delete’ was not declared in this scope
../src/country.cc:190: error: ‘class geoip::Country’ has no member named ‘db’
../src/country6.cc:80: error: ‘geoipv6_t’ was not declared in this scope
../src/country6.cc:80: error: expected ;' before ‘ipnum_v6’ ../src/country6.cc:82: error: ‘ipnum_v6’ was not declared in this scope ../src/country6.cc:82: error: ‘__GEOIP_V6_IS_NULL’ was not declared in this scope ../src/country6.cc:85: error: ‘class geoip::Country6’ has no member named ‘db’ ../src/country6.cc:85: error: ‘GeoIP_id_by_ipnum_v6’ was not declared in this scope ../src/country6.cc:89: error: ‘GeoIP_country_name’ was not declared in this scope ../src/country6.cc:90: error: ‘GeoIP_country_code’ was not declared in this scope ../src/country6.cc:91: error: ‘GeoIP_country_code3’ was not declared in this scope ../src/country6.cc:92: error: ‘GeoIP_country_continent’ was not declared in this scope ../src/country.cc: In static member function ‘static v8::Handle<v8::Value> geoip::Country::close(const v8::Arguments&)’: ../src/country.cc:202: error: ‘class geoip::Country’ has no member named ‘db’ ../src/country.cc:202: error: ‘GeoIP_delete’ was not declared in this scope ../src/country.cc:203: error: ‘class geoip::Country’ has no member named ‘db’ ../src/country6.cc: In static member function ‘static v8::Handle<v8::Value> geoip::Country6::lookup(const v8::Arguments&)’: ../src/country6.cc:107: error: ‘GEOIP_COUNTRY_EDITION_V6’ was not declared in this scope ../src/country6.cc:117: error: ‘struct country6_baton_t’ has no member named ‘ipnum_v6’ ../src/country6.cc:117: error: ‘_GeoIP_lookupaddress_v6’ was not declared in this scope ../src/country6.cc: In static member function ‘static void geoip::Country6::EIO_Country(eio_req*)’: ../src/country6.cc:134: error: ‘struct country6_baton_t’ has no member named ‘ipnum_v6’ ../src/country6.cc:134: error: ‘__GEOIP_V6_IS_NULL’ was not declared in this scope ../src/country6.cc:137: error: ‘class geoip::Country6’ has no member named ‘db’ ../src/country6.cc:137: error: ‘struct country6_baton_t’ has no member named ‘ipnum_v6’ ../src/country6.cc:137: error: ‘GeoIP_id_by_ipnum_v6’ was not declared in this scope ../src/country6.cc: In static member function ‘static int geoip::Country6::EIO_AfterCountry(eio_req*)’: ../src/country6.cc:159: error: ‘GeoIP_country_name’ was not declared in this scope ../src/country6.cc:160: error: ‘GeoIP_country_code’ was not declared in this scope ../src/country6.cc:161: error: ‘GeoIP_country_code3’ was not declared in this scope ../src/country6.cc:162: error: ‘GeoIP_country_continent’ was not declared in this scope ../src/country6.cc: In static member function ‘static v8::Handle<v8::Value> geoip::Country6::update(const v8::Arguments&)’: ../src/country6.cc:194: error: ‘class geoip::Country6’ has no member named ‘db’ ../src/country6.cc:194: error: ‘GEOIP_MEMORY_CACHE’ was not declared in this scope ../src/country6.cc:194: error: ‘GEOIP_STANDARD’ was not declared in this scope ../src/country6.cc:194: error: ‘GeoIP_open’ was not declared in this scope ../src/country6.cc:196: error: ‘class geoip::Country6’ has no member named ‘db’ ../src/country6.cc:197: error: ‘class geoip::Country6’ has no member named ‘db’ ../src/country6.cc:197: error: ‘GeoIP_database_edition’ was not declared in this scope ../src/country6.cc:198: error: ‘GEOIP_COUNTRY_EDITION_V6’ was not declared in this scope ../src/country6.cc:201: error: ‘class geoip::Country6’ has no member named ‘db’ ../src/country6.cc:201: error: ‘GeoIP_delete’ was not declared in this scope ../src/country6.cc:202: error: ‘class geoip::Country6’ has no member named ‘db’ ../src/country6.cc: In static member function ‘static v8::Handle<v8::Value> geoip::Country6::close(const v8::Arguments&)’: ../src/country6.cc:214: error: ‘class geoip::Country6’ has no member named ‘db’ ../src/country6.cc:214: error: ‘GeoIP_delete’ was not declared in this scope ../src/country6.cc:215: error: ‘class geoip::Country6’ has no member named ‘db’ Waf: Leaving directory/Users/dreampuf/hub/GeoIP/build'
Build failed:
-> task failed (err #1):
{task: cxx init.cc -> init_1.o}
-> task failed (err #1):
{task: cxx netspeed.cc -> netspeed_1.o}
-> task failed (err #1):
{task: cxx country.cc -> country_1.o}
-> task failed (err #1):
{task: cxx country6.cc -> country6_1.o}

freebsd 9.0 install fails

hello,

i have node v0.8.4 and npm v1.1.45 and my package.json is like:

cat package.json
{
"author": "Norman Khine [email protected] (http://khine.net)",
"name": "parallax",
"description": "Node.js application for the ZMGC project used to handle all 'realtime' events. The event is in my eye, but I am also the event!",
"version": "0.0.1-1",
"homepage": "http://parallax.zmgc.net",
"repository": {
"type": "git",
"url": "git://github.com/nkhine/parallax.git"
},
"subdomain": "parallax",
"engines": {
"node": " >=0.8.0"
},
"scripts": {
"start": "server.js"
},
"dependencies": {
"d3": ">=2.9.2",
"now": ">=0.8.0",
"node-static": "0.5.9",
"geoip": "0.4.6",
"validator": ">=0.3.9"
},
"devDependencies": {},
"optionalDependencies": {}
}

when i run:

$ npm install geoip, i get this:

npm install geoip
npm http GET https://registry.npmjs.org/geoip/0.4.6
npm http 304 https://registry.npmjs.org/geoip/0.4.6
npm WARN package.json [email protected] No README.md file found!

> [email protected] install /home/khine/sandboxes/zeitgeist/phoenix/ui/core/js/node/node_modules/geoip
> node-gyp rebuild

gyp http GET http://nodejs.org/dist/v0.8.4/node-v0.8.4.tar.gz
gyp http 200 http://nodejs.org/dist/v0.8.4/node-v0.8.4.tar.gz
gmake: Entering directory `/home/khine/sandboxes/zeitgeist/phoenix/ui/core/js/node/node_modules/geoip/build'
  CXX(target) Release/obj.target/geoip/src/global.o
  CXX(target) Release/obj.target/geoip/src/init.o
In file included from ../src/netspeed.h:12,
                 from ../src/init.cc:7:
../src/node_geoip.h:7:19: warning: GeoIP.h: No such file or directory
../src/node_geoip.h:8:23: warning: GeoIPCity.h: No such file or directory
In file included from ../src/netspeed.h:12,
                 from ../src/init.cc:7:
../src/node_geoip.h:20: error: expected constructor, destructor, or type conversion before 'unsigned'
../src/node_geoip.h:21: error: expected constructor, destructor, or type conversion before 'unsigned'
../src/node_geoip.h:23: error: expected constructor, destructor, or type conversion before 'unsigned'
../src/node_geoip.h:24: error: 'GEOIP_API' does not name a type
../src/node_geoip.h:25: error: 'GEOIP_API' does not name a type
../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before 'unsigned'
../src/node_geoip.h:28: error: 'GEOIP_API' does not name a type
../src/node_geoip.h:29: error: expected constructor, destructor, or type conversion before 'int'
../src/node_geoip.h:31: error: expected constructor, destructor, or type conversion before 'void'
../src/node_geoip.h:32: error: expected constructor, destructor, or type conversion before 'char'
../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before 'void'
../src/node_geoip.h:39: error: 'GEOIP_API' does not name a type
../src/node_geoip.h:40: error: 'GEOIP_API' does not name a type
../src/node_geoip.h:41: error: 'GEOIP_API' does not name a type
../src/node_geoip.h:42: error: expected constructor, destructor, or type conversion before 'int'
../src/node_geoip.h:43: error: expected constructor, destructor, or type conversion before 'void'
../src/node_geoip.h:44: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:46: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:47: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:48: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:51: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:60: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:61: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion before 'char'
../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion before 'char'
../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before 'char'
../src/node_geoip.h:73: error: expected constructor, destructor, or type conversion before 'int'
../src/node_geoip.h:74: error: expected constructor, destructor, or type conversion before 'int'
../src/node_geoip.h:75: error: expected constructor, destructor, or type conversion before 'int'
../src/node_geoip.h:77: error: expected constructor, destructor, or type conversion before 'int'
../src/node_geoip.h:78: error: expected constructor, destructor, or type conversion before 'int'
../src/node_geoip.h:79: error: expected constructor, destructor, or type conversion before 'int'
../src/node_geoip.h:81: error: 'GEOIP_API' does not name a type
../src/node_geoip.h:82: error: 'GEOIP_API' does not name a type
../src/node_geoip.h:83: error: 'GEOIP_API' does not name a type
../src/node_geoip.h:85: error: 'GEOIP_API' does not name a type
../src/node_geoip.h:86: error: 'GEOIP_API' does not name a type
../src/node_geoip.h:87: error: 'GEOIP_API' does not name a type
../src/node_geoip.h:90: error: expected constructor, destructor, or type conversion before 'void'
../src/node_geoip.h:92: error: expected constructor, destructor, or type conversion before 'void'
../src/node_geoip.h:94: error: expected constructor, destructor, or type conversion before 'void'
../src/node_geoip.h:97: error: expected constructor, destructor, or type conversion before 'char'
../src/node_geoip.h:98: error: expected constructor, destructor, or type conversion before 'char'
../src/node_geoip.h:99: error: expected constructor, destructor, or type conversion before 'char'
../src/node_geoip.h:101: error: expected constructor, destructor, or type conversion before 'char'
../src/node_geoip.h:102: error: expected constructor, destructor, or type conversion before 'char'
../src/node_geoip.h:103: error: expected constructor, destructor, or type conversion before 'char'
../src/node_geoip.h:106: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:109: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:112: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:115: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:118: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:121: error: expected constructor, destructor, or type conversion before 'int'
../src/node_geoip.h:124: error: expected constructor, destructor, or type conversion before 'unsigned'
../src/node_geoip.h:126: error: expected constructor, destructor, or type conversion before 'char'
../src/node_geoip.h:127: error: expected constructor, destructor, or type conversion before 'unsigned'
../src/node_geoip.h:129: error: expected constructor, destructor, or type conversion before 'int'
../src/node_geoip.h:130: error: expected constructor, destructor, or type conversion before 'int'
../src/node_geoip.h:131: error: expected constructor, destructor, or type conversion before 'int'
../src/node_geoip.h:132: error: expected constructor, destructor, or type conversion before 'int'
../src/node_geoip.h:134: error: expected constructor, destructor, or type conversion before 'int'
../src/node_geoip.h:135: error: expected constructor, destructor, or type conversion before 'char'
../src/node_geoip.h:136: error: expected constructor, destructor, or type conversion before 'void'
../src/node_geoip.h:139: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:142: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:145: error: expected constructor, destructor, or type conversion before 'unsigned'
../src/node_geoip.h:146: error: expected constructor, destructor, or type conversion before 'char'
../src/node_geoip.h:153: error: expected constructor, destructor, or type conversion before 'int'
../src/node_geoip.h:156: error: expected constructor, destructor, or type conversion before 'const'
../src/node_geoip.h:160: error: expected constructor, destructor, or type conversion before '*' token
../src/node_geoip.h:161: error: expected constructor, destructor, or type conversion before '*' token
../src/node_geoip.h:163: error: expected constructor, destructor, or type conversion before '*' token
In file included from ../src/init.cc:7:
../src/netspeed.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
../src/netspeed.h:21: error: expected ';' before '*' token
In file included from ../src/init.cc:8:
../src/country6.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
../src/country6.h:21: error: expected ';' before '*' token
../src/country6.h:49: error: 'geoipv6_t' does not name a type
In file included from ../src/init.cc:9:
../src/country.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
../src/country.h:21: error: expected ';' before '*' token
In file included from ../src/init.cc:10:
../src/region.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
../src/region.h:21: error: expected ';' before '*' token
../src/region.h:49: error: ISO C++ forbids declaration of 'GeoIPRegion' with no type
../src/region.h:49: error: expected ';' before '*' token
In file included from ../src/init.cc:11:
../src/city6.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
../src/city6.h:21: error: expected ';' before '*' token
../src/city6.h:50: error: ISO C++ forbids declaration of 'GeoIPRecord' with no type
../src/city6.h:50: error: expected ';' before '*' token
../src/city6.h:51: error: 'geoipv6_t' does not name a type
In file included from ../src/init.cc:12:
../src/city.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
../src/city.h:21: error: expected ';' before '*' token
../src/city.h:50: error: ISO C++ forbids declaration of 'GeoIPRecord' with no type
../src/city.h:50: error: expected ';' before '*' token
In file included from ../src/init.cc:13:
../src/org.h:21: error: ISO C++ forbids declaration of 'GeoIP' with no type
../src/org.h:21: error: expected ';' before '*' token
../src/init.cc: In function 'void init(v8::Handle<v8::Object>)':
../src/init.cc:34: error: 'GeoIP_lib_version' was not declared in this scope
gmake: *** [Release/obj.target/geoip/src/init.o] Error 1
gmake: Leaving directory `/home/khine/sandboxes/zeitgeist/phoenix/ui/core/js/node/node_modules/geoip/build'
gyp ERR! build error 
gyp ERR! stack Error: `gmake` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:215:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:91:17)
gyp ERR! stack     at Process._handle.onexit (child_process.js:674:10)
gyp ERR! System FreeBSD 9.0-RELEASE
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/khine/sandboxes/zeitgeist/phoenix/ui/core/js/node/node_modules/geoip
gyp ERR! node -v v0.8.4
gyp ERR! node-gyp -v v0.6.1
gyp ERR! not ok 
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! `sh "-c" "node-gyp rebuild"` failed with 1
npm ERR! 
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the geoip package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls geoip
npm ERR! There is likely additional logging output above.

npm ERR! System FreeBSD 9.0-RELEASE
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "geoip"
npm ERR! cwd /home/khine/sandboxes/zeitgeist/phoenix/ui/core/js/node
npm ERR! node -v v0.8.4
npm ERR! npm -v 1.1.45
npm ERR! code ELIFECYCLE
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/khine/sandboxes/zeitgeist/phoenix/ui/core/js/node/npm-debug.log
npm ERR! not ok code 0

Error installing using npm

node -v v0.5.10-pre
npm -v 1.0.99

    ../src/netspeed.cc: In static member function ‘static v8::Handle<v8::Value> geoip::NetSpeed::lookup(const v8::Arguments&)’:
    ../src/netspeed.cc:116: error: invalid conversion from ‘int (*)(eio_req*)’ to ‘void (*)(eio_req*)’
    ../src/netspeed.cc:116: error:   initializing argument 1 of ‘eio_req* eio_custom(void (*)(eio_req*), int, int (*)(eio_req*), void*)’
    ../src/country.cc: In static member function ‘static v8::Handle<v8::Value> geoip::Country::lookup(const v8::Arguments&)’:
    ../src/country.cc:112: error: invalid conversion from ‘int (*)(eio_req*)’ to ‘void (*)(eio_req*)’
    ../src/country.cc:112: error:   initializing argument 1 of ‘eio_req* eio_custom(void (*)(eio_req*), int, int (*)(eio_req*), void*)’
    ../src/country6.cc: In static member function ‘static v8::Handle<v8::Value> geoip::Country6::lookup(const v8::Arguments&)’:
    ../src/country6.cc:122: error: invalid conversion from ‘int (*)(eio_req*)’ to ‘void (*)(eio_req*)’
    ../src/country6.cc:122: error:   initializing argument 1 of ‘eio_req* eio_custom(void (*)(eio_req*), int, int (*)(eio_req*), void*)’
    [ 5/11] cxx: src/region.cc -> build/Release/src/region_1.o
    ../src/region.cc: In static member function ‘static v8::Handle<v8::Value> geoip::Region::lookup(const v8::Arguments&)’:
    ../src/region.cc:114: error: invalid conversion from ‘int (*)(eio_req*)’ to ‘void (*)(eio_req*)’
    ../src/region.cc:114: error:   initializing argument 1 of ‘eio_req* eio_custom(void (*)(eio_req*), int, int (*)(eio_req*), void*)’
    Waf: Leaving directory `/var/www/hummingbird/node_modules/geoip/build'
    Build failed:
     -> task failed (err #1): 
        {task: cxx netspeed.cc -> netspeed_1.o}
     -> task failed (err #1): 
        {task: cxx country.cc -> country_1.o}
     -> task failed (err #1): 
        {task: cxx country6.cc -> country6_1.o}
     -> task failed (err #1): 
        {task: cxx region.cc -> region_1.o}
    npm ERR! error installing [email protected] Error: [email protected] preinstall: `node-waf clean || true; node-waf configure build`
    npm ERR! error installing [email protected] `sh "-c" "node-waf clean || true; node-waf configure build"` failed with 1
    npm ERR! error installing [email protected]     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/exec.js:49:20)
    npm ERR! error installing [email protected]     at ChildProcess.emit (events.js:70:17)
    npm ERR! error installing [email protected]     at maybeExit (child_process.js:336:16)
    npm ERR! error installing [email protected]     at Process.onexit (child_process.js:371:5)
    npm ERR! [email protected] preinstall: `node-waf clean || true; node-waf configure build`
    npm ERR! `sh "-c" "node-waf clean || true; node-waf configure build"` failed with 1

undefined symbol: _GeoIP_iso_8859_1__utf8

I'm assuming this came from the change to using GeoIP's internal UTF8 objects, which aren't available in my server's version of libgeoIP. Which version of the Node.JS GeoIP would work without the native versions? Is it possible to make it optional?

Compile fails on node > v0.4.8: invalid conversion from 'void (*)(eio_req*)' to 'int (*)(eio_req*)'

It appears a change to eio has broken calls to eio_custom(). When building, I get the error:

Waf: Entering directory `node_modules/GeoIP/build'
[ 2/11] cxx: src/netspeed.cc -> build/default/src/netspeed_1.o
../src/netspeed.cc: In static member function 'static v8::Handle<v8::Value> geoip::NetSpeed::lookup(const v8::Arguments&)':
../src/netspeed.cc:116: error: invalid conversion from 'void (*)(eio_req*)' to 'int (*)(eio_req*)'
../src/netspeed.cc:116: error:   initializing argument 1 of 'eio_req* eio_custom(int (*)(eio_req*), int, int (*)(eio_req*), void*)'
Waf: Leaving directory `node_modules/GeoIP/build'
Build failed:  -> task failed (err #1): 
    {task: cxx netspeed.cc -> netspeed_1.o}

Others have fixed the issue like so.

Error installing 0.4.4 through NPM

I'm having problems installing 0.4.4 using NPM in debian, I have libgeoip and libgeoip-dev installed.

node -v
v0.4.12

npm -v
1.0.30

info it worked if it ends with ok
verbose cli [ 'node', '/usr/local/bin/npm', 'install', 'geoip' ]
info using [email protected]
info using [email protected]
verbose config file /home/jose/.npmrc
verbose config file /usr/local/etc/npmrc
silly testEngine { name: 'memcache',
silly testEngine description: 'simple memcache client',
silly testEngine version: '0.2.0',
silly testEngine homepage: 'https://github.com/elbart/node-memcache',
silly testEngine repository:
silly testEngine { type: 'git',
silly testEngine url: 'git://github.com/elbart/node-memcache.git' },
silly testEngine author: { name: 'Tim Eggert', email: '[email protected]' },
silly testEngine main: './lib/memcache',
silly testEngine devDependencies: { expresso: '>=0.7.0' },
silly testEngine directories: { lib: 'lib', test: 'test' },
silly testEngine scripts: { test: 'make test', 'test-cov': 'make test-cov' },
silly testEngine engines: { node: '_' },
silly testEngine keywords: [ 'memcache', 'memcached' ],
silly testEngine _npmJsonOpts:
silly testEngine { file: '/var/www/testing/appname/adserver/node_modules/memcache/package.json',
silly testEngine wscript: false,
silly testEngine contributors: false,
silly testEngine serverjs: false },
silly testEngine _id: '[email protected]',
silly testEngine dependencies: {},
silly testEngine _engineSupported: true,
silly testEngine _npmVersion: '1.0.30',
silly testEngine _nodeVersion: 'v0.4.12',
silly testEngine defaultsLoaded: true }
verbose caching /var/www/testing/appname/adserver/node_modules/memcache/package.json
verbose loadDefaults [email protected]
silly testEngine { name: 'log4js',
silly testEngine version: '0.3.9',
silly testEngine description: 'Port of Log4js to work with node.',
silly testEngine keywords: [ 'logging', 'log', 'log4j', 'node' ],
silly testEngine main: './lib/log4js',
silly testEngine author:
silly testEngine { name: 'Gareth Jones',
silly testEngine email: '[email protected]' },
silly testEngine bugs: { url: 'http://github.com/csausdev/log4js-node/issues' },
silly testEngine engines: [ 'node >=0.4', node: ' >=0.4' ],
silly testEngine scripts: { test: 'vows test/
.js' },
silly testEngine directories: { test: 'test', lib: 'lib' },
silly testEngine devDependencies: { vows: '>=0.5.2' },
silly testEngine _npmJsonOpts:
silly testEngine { file: '/var/www/testing/appname/adserver/node_modules/log4js/package.json',
silly testEngine wscript: false,
silly testEngine contributors: false,
silly testEngine serverjs: false },
silly testEngine _id: '[email protected]',
silly testEngine dependencies: {},
silly testEngine _engineSupported: true,
silly testEngine _npmVersion: '1.0.30',
silly testEngine _nodeVersion: 'v0.4.12',
silly testEngine defaultsLoaded: true }
verbose caching /var/www/testing/appname/adserver/node_modules/log4js/package.json
verbose loadDefaults [email protected]
silly testEngine { name: 'mysql',
silly testEngine version: '0.9.4',
silly testEngine author:
silly testEngine { name: 'Felix Geisendörfer',
silly testEngine email: '[email protected]',
silly testEngine url: 'http://debuggable.com/' },
silly testEngine description: 'A pure node.js JavaScript Client implementing the MySQL protocol.',
silly testEngine homepage: 'https://github.com/felixge/node-mysql',
silly testEngine repository:
silly testEngine { type: 'git',
silly testEngine url: 'git://github.com/felixge/node-mysql.git' },
silly testEngine main: './index',
silly testEngine scripts: { test: 'make test' },
silly testEngine dependencies: { hashish: '0.0.4' },
silly testEngine devDependencies:
silly testEngine { gently: '0.8.0',
silly testEngine far: '0.0.6',
silly testEngine 'fast-or-slow': '0.0.5' },
silly testEngine engines: { node: '
' },
silly testEngine _npmJsonOpts:
silly testEngine { file: '/var/www/testing/appname/adserver/node_modules/mysql/package.json',
silly testEngine wscript: false,
silly testEngine contributors: false,
silly testEngine serverjs: false },
silly testEngine _id: '[email protected]',
silly testEngine _engineSupported: true,
silly testEngine _npmVersion: '1.0.30',
silly testEngine _nodeVersion: 'v0.4.12',
silly testEngine _defaultsLoaded: true }
verbose caching /var/www/testing/appname/adserver/node_modules/mysql/package.json
verbose loadDefaults [email protected]
verbose has wscript [ undefined,
verbose has wscript { file: '/var/www/testing/appname/adserver/node_modules/pg/package.json',
verbose has wscript contributors: false,
verbose has wscript serverjs: false,
verbose has wscript wscript: true } ]
silly testEngine { name: 'pg',
silly testEngine version: '0.5.0',
silly testEngine description: 'PostgreSQL client - pure javascript & libpq with the same API',
silly testEngine keywords:
silly testEngine [ 'postgres',
silly testEngine 'pg',
silly testEngine 'libpq',
silly testEngine 'postgre',
silly testEngine 'database',
silly testEngine 'rdbms' ],
silly testEngine homepage: 'http://github.com/brianc/node-postgres',
silly testEngine repository:
silly testEngine { type: 'git',
silly testEngine url: 'git://github.com/brianc/node-postgres.git' },
silly testEngine author:
silly testEngine { name: 'Brian Carlson',
silly testEngine email: '[email protected]' },
silly testEngine main: './lib',
silly testEngine scripts:
silly testEngine { test: 'make test',
silly testEngine install: 'node-waf configure build || true' },
silly testEngine engines: { node: '>= 0.2.2' },
silly testEngine _npmJsonOpts:
silly testEngine { file: '/var/www/testing/appname/adserver/node_modules/pg/package.json',
silly testEngine contributors: false,
silly testEngine serverjs: false,
silly testEngine wscript: true },
silly testEngine _id: '[email protected]',
silly testEngine dependencies: {},
silly testEngine devDependencies: {},
silly testEngine _engineSupported: true,
silly testEngine _npmVersion: '1.0.30',
silly testEngine _nodeVersion: 'v0.4.12',
silly testEngine _defaultsLoaded: true }
verbose caching /var/www/testing/appname/adserver/node_modules/pg/package.json
verbose loadDefaults [email protected]
verbose into /var/www/testing/appname/adserver [ 'geoip' ]
verbose cache add geoip
verbose cache add [ 'geoip', null ]
silly cache add: name, spec, args [ undefined, 'geoip', [ 'geoip', null ] ]
verbose parsed url { pathname: 'geoip', href: 'geoip' }
info addNamed [ 'geoip', '' ]
verbose addNamed [ null, '' ]
verbose GET geoip
verbose raw, before any munging geoip
verbose url resolving [ 'https://registry.npmjs.org/', './geoip' ]
verbose url resolved https://registry.npmjs.org/geoip
verbose etag "EL494OUJE8E13FV3H6Q9FDGZY"
silly get cb [ 304,
silly get cb { server: 'CouchDB/1.1.0 (Erlang OTP/R14B03)',
silly get cb etag: '"EL494OUJE8E13FV3H6Q9FDGZY"',
silly get cb date: 'Thu, 22 Sep 2011 16:34:10 GMT',
silly get cb 'content-length': '0' } ]
verbose etag geoip from cache
verbose GET geoip/0.4.4
verbose raw, before any munging geoip/0.4.4
verbose url resolving [ 'https://registry.npmjs.org/', './geoip/0.4.4' ]
verbose url resolved https://registry.npmjs.org/geoip/0.4.4
verbose etag "EL494OUJE8E13FV3H6Q9FDGZY"
silly get cb [ 304,
silly get cb { server: 'CouchDB/1.1.0 (Erlang OTP/R14B03)',
silly get cb etag: '"EL494OUJE8E13FV3H6Q9FDGZY"',
silly get cb date: 'Thu, 22 Sep 2011 16:34:13 GMT',
silly get cb 'content-length': '0' } ]
verbose etag geoip/0.4.4 from cache
verbose bin dist [ '0.4-ares1.7.4-ev4.4-openssl0.9.8g-v83.1.8.26-linux-2.6.26-2-686',
verbose bin dist { shasum: 'cf7e749b89599b91b3fe0bfa3ce27a8597c415e1',
verbose bin dist tarball: 'http://registry.npmjs.org/geoip/-/geoip-0.4.4.tgz' } ]
verbose has wscript [ undefined,
verbose has wscript { file: '/home/jose/.npm/geoip/0.4.4/package/package.json',
verbose has wscript contributors: false,
verbose has wscript serverjs: false,
verbose has wscript wscript: true } ]
silly testEngine { name: 'geoip',
silly testEngine description: 'GeoIP binding for node',
silly testEngine version: '0.4.4',
silly testEngine homepage: 'http://github.com/kuno/GeoIP',
silly testEngine author:
silly testEngine { name: 'Guan 'kuno' Qing',
silly testEngine email: 'neokuno at Gmail dot com' },
silly testEngine contributors:
silly testEngine [ { name: 'Vladimir Dronnikov',
silly testEngine email: '[email protected]' },
silly testEngine { name: 'Konstantin Käfer',
silly testEngine email: '[email protected]' },
silly testEngine { name: 'Joe Vennix', email: '[email protected]' },
silly testEngine { name: 'artems', email: '[email protected]' },
silly testEngine { name: 'Sven Steinheißer',
silly testEngine email: '[email protected]' },
silly testEngine { name: 'James Taylor', email: '[email protected]' } ],
silly testEngine repository:
silly testEngine { type: 'git',
silly testEngine url: 'git://github.com/kuno/GeoIP.git' },
silly testEngine bugs:
silly testEngine { email: '[email protected]',
silly testEngine url: 'http://github.com/kuno/GeoIP/issues' },
silly testEngine main: 'index.js',
silly testEngine directory:
silly testEngine { src: './src',
silly testEngine test: './test',
silly testEngine misc: './misc',
silly testEngine sample: './sample',
silly testEngine benchmark: './benchmark' },
silly testEngine engine: { node: '>=0.4.0<5.0', npm: '1' },
silly testEngine script: { install: 'node-waf configure build' },
silly testEngine licences:
silly testEngine [ { type: 'LGPL2.1',
silly testEngine url: 'http://www.gnu.org/licenses/lgpl-2.1.txt' } ],
silly testEngine _npmJsonOpts:
silly testEngine { file: '/home/jose/.npm/geoip/0.4.4/package/package.json',
silly testEngine contributors: false,
silly testEngine serverjs: false,
silly testEngine wscript: true },
silly testEngine id: '[email protected]',
silly testEngine scripts: { preinstall: 'node-waf clean || true; node-waf configure build' },
silly testEngine dependencies: {},
silly testEngine devDependencies: {},
silly testEngine engines: { node: '
' },
silly testEngine _engineSupported: true,
silly testEngine _npmVersion: '1.0.30',
silly testEngine _nodeVersion: 'v0.4.12',
silly testEngine _defaultsLoaded: true }
verbose caching /home/jose/.npm/geoip/0.4.4/package/package.json
verbose loadDefaults [email protected]
silly resolved [ { name: 'geoip',
silly resolved description: 'GeoIP binding for node',
silly resolved version: '0.4.4',
silly resolved homepage: 'http://github.com/kuno/GeoIP',
silly resolved author:
silly resolved { name: 'Guan 'kuno' Qing',
silly resolved email: 'neokuno at Gmail dot com' },
silly resolved contributors:
silly resolved [ { name: 'Vladimir Dronnikov',
silly resolved email: '[email protected]' },
silly resolved { name: 'Konstantin Käfer',
silly resolved email: '[email protected]' },
silly resolved { name: 'Joe Vennix', email: '[email protected]' },
silly resolved { name: 'artems', email: '[email protected]' },
silly resolved { name: 'Sven Steinheißer',
silly resolved email: '[email protected]' },
silly resolved { name: 'James Taylor', email: '[email protected]' } ],
silly resolved repository:
silly resolved { type: 'git',
silly resolved url: 'git://github.com/kuno/GeoIP.git' },
silly resolved bugs:
silly resolved { email: '[email protected]',
silly resolved url: 'http://github.com/kuno/GeoIP/issues' },
silly resolved main: 'index.js',
silly resolved directory:
silly resolved { src: './src',
silly resolved test: './test',
silly resolved misc: './misc',
silly resolved sample: './sample',
silly resolved benchmark: './benchmark' },
silly resolved engine: { node: '>=0.4.0<5.0', npm: '1' },
silly resolved script: { install: 'node-waf configure build' },
silly resolved licences:
silly resolved [ { type: 'LGPL2.1',
silly resolved url: 'http://www.gnu.org/licenses/lgpl-2.1.txt' } ],
silly resolved _npmJsonOpts:
silly resolved { file: '/home/jose/.npm/geoip/0.4.4/package/package.json',
silly resolved contributors: false,
silly resolved serverjs: false,
silly resolved wscript: true },
silly resolved _id: '[email protected]',
silly resolved scripts: { preinstall: 'node-waf clean || true; node-waf configure build' },
silly resolved dependencies: {},
silly resolved devDependencies: {},
silly resolved engines: { node: '' },
silly resolved _engineSupported: true,
silly resolved _npmVersion: '1.0.30',
silly resolved _nodeVersion: 'v0.4.12',
silly resolved _defaultsLoaded: true } ]
info into /var/www/testing/appname/adserver [email protected]
info installOne [email protected]
info unbuild /var/www/testing/appname/adserver/node_modules/geoip
verbose from cache /home/jose/.npm/geoip/0.4.4/package/package.json
verbose mkdir (expected) error ENOENT, No such file or directory '/var/www/testing/appname/adserver/node_modules/___geoip.npm'
verbose mkdir done: /var/www/testing/appname/adserver/node_modules/__geoip.npm 755
verbose unpack
uid, gid [ 1001, 33 ]
verbose unpackTarget /var/www/testing/appname/adserver/node_modules/geoip
silly gunzTarPerm modes [ '755', '644' ]
verbose success gzip "--decompress" "--stdout" "/home/jose/.npm/geoip/0.4.4/package.tgz"
verbose success tar "-mvxpf" "-" "-o" "-C" "/var/www/testing/appname/adserver/node_modules/___geoip.npm"
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/.npmignore
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/.gitignore
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/wscript
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/package.json
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/index.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/LICENCE
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/region.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/neco_test.sh
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/test.sh
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/country.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/utils.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/v0.4.3.report
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/country6.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/org.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/netspeed.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/v0.4.4.report
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/v0.4.6.report
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/v0.4.0.report
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/v0.4.8.report
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/v0.4.2.report
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/city.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/v0.4.7.report
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/city6.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/v0.4.5.report
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/test/v0.4.1.report
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/benchmark/
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/benchmark/region.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/benchmark/city.coffee
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/benchmark/country.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/benchmark/test.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/benchmark/city.old.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/benchmark/country6.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/benchmark/org.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/benchmark/netspeed.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/benchmark/index.coffee
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/benchmark/city.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/benchmark/city6.js
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/country.cc
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/city.cc
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/city6.cc
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/node_geoip.h
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/city6.h
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/region.cc
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/netspeed.h
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/org.cc
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/region.h
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/country6.cc
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/global.h
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/netspeed.cc
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/org.h
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/city.h
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/utils.h
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/utils.cc
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/init.cc
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/country.h
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/country6.h
silly asyncMap in gTP /var/www/testing/appname/adserver/node_modules/___geoip.npm/package/src/global.cc
verbose gunzed /var/www/testing/appname/adserver/node_modules/___geoip.npm/package
verbose rm'ed /var/www/testing/appname/adserver/node_modules/geoip
verbose renamed [ '/var/www/testing/appname/adserver/node_modules/___geoip.npm/package',
verbose renamed '/var/www/testing/appname/adserver/node_modules/geoip' ]
verbose has wscript [ undefined,
verbose has wscript { file: '/var/www/testing/appname/adserver/node_modules/geoip/package.json',
verbose has wscript contributors: false,
verbose has wscript serverjs: false,
verbose has wscript wscript: true } ]
silly testEngine { name: 'geoip',
silly testEngine description: 'GeoIP binding for node',
silly testEngine version: '0.4.4',
silly testEngine homepage: 'http://github.com/kuno/GeoIP',
silly testEngine author:
silly testEngine { name: 'Guan 'kuno' Qing',
silly testEngine email: 'neokuno at Gmail dot com' },
silly testEngine contributors:
silly testEngine [ { name: 'Vladimir Dronnikov',
silly testEngine email: '[email protected]' },
silly testEngine { name: 'Konstantin Käfer',
silly testEngine email: '[email protected]' },
silly testEngine { name: 'Joe Vennix', email: '[email protected]' },
silly testEngine { name: 'artems', email: '[email protected]' },
silly testEngine { name: 'Sven Steinheißer',
silly testEngine email: '[email protected]' },
silly testEngine { name: 'James Taylor', email: '[email protected]' } ],
silly testEngine repository:
silly testEngine { type: 'git',
silly testEngine url: 'git://github.com/kuno/GeoIP.git' },
silly testEngine bugs:
silly testEngine { email: '[email protected]',
silly testEngine url: 'http://github.com/kuno/GeoIP/issues' },
silly testEngine main: 'index.js',
silly testEngine directory:
silly testEngine { src: './src',
silly testEngine test: './test',
silly testEngine misc: './misc',
silly testEngine sample: './sample',
silly testEngine benchmark: './benchmark' },
silly testEngine engine: { node: '>=0.4.0<5.0', npm: '1' },
silly testEngine script: { install: 'node-waf configure build' },
silly testEngine licences:
silly testEngine [ { type: 'LGPL2.1',
silly testEngine url: 'http://www.gnu.org/licenses/lgpl-2.1.txt' } ],
silly testEngine _npmJsonOpts:
silly testEngine { file: '/var/www/testing/appname/adserver/node_modules/geoip/package.json',
silly testEngine contributors: false,
silly testEngine serverjs: false,
silly testEngine wscript: true },
silly testEngine _id: '[email protected]',
silly testEngine scripts: { preinstall: 'node-waf clean || true; node-waf configure build' },
silly testEngine dependencies: {},
silly testEngine devDependencies: {},
silly testEngine engines: { node: '
' },
silly testEngine _engineSupported: true,
silly testEngine _npmVersion: '1.0.30',
silly testEngine _nodeVersion: 'v0.4.12',
silly testEngine _defaultsLoaded: true }
verbose caching /var/www/testing/appname/adserver/node_modules/geoip/package.json
verbose loadDefaults [email protected]
info preinstall [email protected]
verbose unsafe-perm in lifecycle false
verbose Setting uid from 0 1001
verbose stack at uid setting Error
verbose stack at uid setting at exec (/usr/local/lib/node_modules/npm/lib/utils/exec.js:35:17)
verbose stack at uid setting at Array.0 (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:119:5)
verbose stack at uid setting at EventEmitter._tickCallback (node.js:126:26)
silly exec sh "-c" "node-waf clean || true; node-waf configure build"
info [email protected] Failed to exec preinstall script
ERR! error installing [email protected] Error: [email protected] preinstall: node-waf clean || true; node-waf configure build
ERR! error installing [email protected] sh "-c" "node-waf clean || true; node-waf configure build" failed with 1
ERR! error installing [email protected] at ChildProcess. (/usr/local/lib/node_modules/npm/lib/utils/exec.js:49:20)
ERR! error installing [email protected] at ChildProcess.emit (events.js:67:17)
ERR! error installing [email protected] at ChildProcess.onexit (child_process.js:192:12)
info unbuild /var/www/testing/appname/adserver/node_modules/geoip
verbose from cache /var/www/testing/appname/adserver/node_modules/geoip/package.json
info preuninstall [email protected]
info uninstall [email protected]
verbose unbuild [email protected] [ false,
verbose unbuild [email protected] '/usr/local/lib/node_modules',
verbose unbuild [email protected] '/var/www/testing/appname/adserver/node_modules' ]
info postuninstall [email protected]
verbose installOne cb [email protected]
ERR! [email protected] preinstall: node-waf clean || true; node-waf configure build
ERR! sh "-c" "node-waf clean || true; node-waf configure build" failed with 1
ERR!
ERR! Failed at the [email protected] preinstall script.
ERR! This is most likely a problem with the geoip package,
ERR! not with npm itself.
ERR! Tell the author that this fails on your system:
ERR! node-waf clean || true; node-waf configure build
ERR! You can get their info via:
ERR! npm owner ls geoip
ERR! There is likely additional logging output above.
ERR!
ERR! System Linux 2.6.26-2-686
ERR! command "node" "/usr/local/bin/npm" "install" "geoip"
ERR! cwd /var/www/testing/appname/adserver
ERR! node -v v0.4.12
ERR! npm -v 1.0.30
verbose exit [ 1, true ]

npm install fails from github and 0.4.5

When doing either npm install -g geoip or npm install -g https://github.com/kuno/geoip/tarball/master, I get the following:

npm http GET https://github.com/kuno/geoip/tarball/master
npm http 200 https://github.com/kuno/geoip/tarball/master

> [email protected] preinstall /home/nodejs/local/lib/node_modules/geoip
> node-waf clean || (exit 0); node-waf configure build

Nothing to clean (project not configured)
Checking for program g++ or c++          : /usr/bin/g++
Checking for program cpp                 : /usr/bin/cpp
Checking for program ar                  : /usr/bin/ar
Checking for program ranlib              : /usr/bin/ranlib
Checking for g++                         : ok
Checking for node path                   : not found
Checking for node prefix                 : ok /home/nodejs/local
'configure' finished successfully (0.021s)
Waf: Entering directory `/home/nodejs/local/lib/node_modules/geoip/build'
[ 1/11] cxx: src/init.cc -> build/Release/src/init_1.o
[ 2/11] cxx: src/netspeed.cc -> build/Release/src/netspeed_1.o
[ 3/11] cxx: src/country6.cc -> build/Release/src/country6_1.o
[ 4/11] cxx: src/country.cc -> build/Release/src/country_1.o
[ 5/11] cxx: src/region.cc -> build/Release/src/region_1.o
[ 6/11] cxx: src/city6.cc -> build/Release/src/city6_1.o
[ 7/11] cxx: src/city.cc -> build/Release/src/city_1.o
Waf: Leaving directory `/home/nodejs/local/lib/node_modules/geoip/build'
Build failed:  -> task failed (err #-1):
    {task: cxx region.cc -> region_1.o}
npm ERR! error installing [email protected]

npm ERR! [email protected] preinstall: `node-waf clean || (exit 0); node-waf configure build`
npm ERR! `sh "-c" "node-waf clean || (exit 0); node-waf configure build"` failed with 1
npm ERR!
npm ERR! Failed at the [email protected] preinstall script.
npm ERR! This is most likely a problem with the geoip package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-waf clean || (exit 0); node-waf configure build
npm ERR! You can get their info via:
npm ERR!     npm owner ls geoip
npm ERR! There is likely additional logging output above.
npm ERR!
npm ERR! System Linux 2.6.27-openvz-chistyakov.1
npm ERR! command "node" "/home/nodejs/local/bin/npm" "install" "-g" "https://github.com/kuno/geoip/tarball/master"
npm ERR! cwd /home/nodejs

npm ERR! node -v v0.6.8
npm ERR! npm -v 1.1.0-2
npm ERR! code ELIFECYCLE
npm ERR! message [email protected] preinstall: `node-waf clean || (exit 0); node-waf configure build`
npm ERR! message `sh "-c" "node-waf clean || (exit 0); node-waf configure build"` failed with 1
npm ERR! errno {}
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /home/nodejs/npm-debug.log
npm not ok

I have installed libgeoip v1.4.8 using emerge dev-libs/geoip, and emerge --search geoip reflects this:

*  dev-libs/geoip
      Latest version available: 1.4.8
      Latest version installed: 1.4.8
      Size of files: 1,789 kB
      Homepage:      http://www.maxmind.com/geoip/api/c.shtml
      Description:   easily lookup countries by IP addresses, even when Reverse DNS entries don't exist
      License:       LGPL-2.1 GPL-2 MaxMind2

I just noticed that the task failed line lists a random file each time.

Asynchronous sleeping

Why do all the asynchronous lookups include a 1 second sleep before executing the callback?

error when installing via npm

I am trying to install this and continue to get the following error:


npm install geoip
npm ERR! failed to fetch https://registry.npmjs.org/geoip/-/geoip-0.4.3.tgz
npm ERR! Error: 404 { server: 'CouchDB/1.1.0 (Erlang OTP/R14B03)',
npm ERR!   date: 'Wed, 03 Aug 2011 17:41:22 GMT',
npm ERR!   'content-type': 'text/plain;charset=utf-8',
npm ERR!   'content-length': '64',
npm ERR!   'cache-control': 'must-revalidate' }
npm ERR!     at ClientRequest.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/fetch.js:108:33)
npm ERR!     at ClientRequest.g (events.js:143:14)
npm ERR!     at ClientRequest.emit (events.js:64:17)
npm ERR!     at HTTPParser.onIncoming (http.js:1358:9)
npm ERR!     at HTTPParser.onHeadersComplete (http.js:108:31)
npm ERR!     at CleartextStream.ondata (http.js:1232:22)
npm ERR!     at CleartextStream._push (tls.js:303:27)
npm ERR!     at SecurePair.cycle (tls.js:577:20)
npm ERR!     at EncryptedStream.write (tls.js:96:13)
npm ERR!     at Socket.ondata (stream.js:36:26)
npm ERR! Report this *entire* log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <[email protected]>
npm ERR! 
npm ERR! System Linux 2.6.35.11-83.9.amzn1.i686
npm ERR! command "node" "/usr/local/bin/npm" "install" "geoip"
npm ERR! cwd /root
npm ERR! node -v v0.4.11-pre
npm ERR! npm -v 1.0.22
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /root/npm-debug.log
npm not ok

any suggestions on how to proceed? i have installed the geoip c library via src as you recommended and also have tried installing via the yum packages. what else can i try?

thanks for your help!

-hugh

Can't install GeoIP through npm

When I try to install geoip module with npm install geoip I get this:

server:/var/src# npm install geoip
npm ERR! failed to fetch http://registry.npmjs.org/geoip/-/geoip-0.4.2.tgz
npm ERR! Error: 404 { server: 'CouchDB/1.1.0 (Erlang OTP/R14B03)',
npm ERR!   date: 'Sun, 24 Jul 2011 12:01:13 GMT',
npm ERR!   'content-type': 'text/plain;charset=utf-8',
npm ERR!   'content-length': '64',
npm ERR!   'cache-control': 'must-revalidate' }
npm ERR!     at ClientRequest.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/fetch.js:108:33)
npm ERR!     at ClientRequest.g (events.js:143:14)
npm ERR!     at ClientRequest.emit (events.js:64:17)
npm ERR!     at HTTPParser.onIncoming (http.js:1335:9)
npm ERR!     at HTTPParser.onHeadersComplete (http.js:108:31)
npm ERR!     at Socket.ondata (http.js:1212:22)
npm ERR!     at Socket._onReadable (net.js:677:27)
npm ERR!     at IOWatcher.onReadable [as callback] (net.js:177:10)

When I try to install previous version through npm install [email protected] I get this:

server:/var/src# npm install [email protected]

> [email protected] preinstall /var/src/node_modules/geoip
> node-waf clean || true; node-waf configure build

Nothing to clean (project not configured)
Checking for program g++ or c++          : /usr/bin/g++
Checking for program cpp                 : /usr/bin/cpp
Checking for program ar                  : /usr/bin/ar
Checking for program ranlib              : /usr/bin/ranlib
Checking for g++                         : ok
Checking for node path                   : not found
Checking for node prefix                 : ok /usr/local
'configure' finished successfully (0.023s)
Waf: Entering directory `/var/src/node_modules/geoip/build'
[1/9] cxx: src/init.cc -> build/default/src/init_1.o
In file included from ../src/netspeed.h:12:0,
                 from ../src/init.cc:7:
../src/node_geoip.h:7:19: fatal error: GeoIP.h: No such file or directory
compilation terminated.
Waf: Leaving directory `/var/src/node_modules/geoip/build'
Build failed:  -> task failed (err #1):
        {task: cxx init.cc -> init_1.o}

Am I doing something wrong or the problem is in the npm module?

UTF-8 characters

We ran into an issue where UTF-8 characters were not being encoded properly. We patched it for city.cc in jbt@0ead9ca#diff-4 but was just wondering whether you were aware of this/had plans to fix. If you can confirm the issue then I'll ask the repo owner to submit a pull request here.

npm install fails

Previous version worked fine - decided to try and update today and now I'm receiving this.

codex@axon:~$ npm install geoip
npm http GET https://registry.npmjs.org/geoip
npm http 304 https://registry.npmjs.org/geoip

> [email protected] preinstall /home/codex/apps/vs-aggregator/node_modules/geoip
> node-waf clean || (exit 0); node-waf configure build

Nothing to clean (project not configured)
Checking for program g++ or c++          : /usr/bin/g++ 
Checking for program cpp                 : /usr/bin/cpp 
Checking for program ar                  : /usr/bin/ar 
Checking for program ranlib              : /usr/bin/ranlib 
Checking for g++                         : ok  
Checking for node path                   : ok /home/codex/.node_libraries 
Checking for node prefix                 : ok /usr/local 
'configure' finished successfully (0.029s)
Waf: Entering directory `/home/codex/apps/vs-aggregator/node_modules/geoip/build'
[ 1/11] cxx: src/init.cc -> build/Release/src/init_1.o
[ 2/11] cxx: src/netspeed.cc -> build/Release/src/netspeed_1.o
[ 3/11] cxx: src/country6.cc -> build/Release/src/country6_1.o
[ 4/11] cxx: src/country.cc -> build/Release/src/country_1.o
In file included from ../src/netspeed.h:12:0,
                 from ../src/init.cc:7:
../src/node_geoip.h:7:19: fatal error: GeoIP.h: No such file or directory
compilation terminated.
In file included from ../src/netspeed.h:12:0,
                 from ../src/netspeed.cc:7:
../src/node_geoip.h:7:19: fatal error: GeoIP.h: No such file or directory
compilation terminated.
In file included from ../src/country6.h:12:0,
                 from ../src/country6.cc:7:
../src/node_geoip.h:7:19: fatal error: GeoIP.h: No such file or directory
compilation terminated.
In file included from ../src/country.h:12:0,
                 from ../src/country.cc:7:
../src/node_geoip.h:7:19: fatal error: GeoIP.h: No such file or directory
compilation terminated.
Waf: Leaving directory `/home/codex/apps/vs-aggregator/node_modules/geoip/build'
Build failed:
 -> task failed (err #1): 
    {task: cxx netspeed.cc -> netspeed_1.o}
 -> task failed (err #1): 
    {task: cxx init.cc -> init_1.o}
 -> task failed (err #1): 
    {task: cxx country6.cc -> country6_1.o}
 -> task failed (err #1): 
    {task: cxx country.cc -> country_1.o}

npm ERR! [email protected] preinstall: `node-waf clean || (exit 0); node-waf configure build`
npm ERR! `sh "-c" "node-waf clean || (exit 0); node-waf configure build"` failed with 1
npm ERR! 
npm ERR! Failed at the [email protected] preinstall script.
npm ERR! This is most likely a problem with the geoip package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-waf clean || (exit 0); node-waf configure build
npm ERR! You can get their info via:
npm ERR!     npm owner ls geoip
npm ERR! There is likely additional logging output above.
npm ERR! 
npm ERR! System Linux 3.0.0-17-generic
npm ERR! command "node" "/usr/local/bin/npm" "install" "geoip"
npm ERR! cwd /home/codex/apps/vs-aggregator
npm ERR! node -v v0.6.14
npm ERR! npm -v 1.1.18
npm ERR! code ELIFECYCLE
npm ERR! message [email protected] preinstall: `node-waf clean || (exit 0); node-waf configure build`
npm ERR! message `sh "-c" "node-waf clean || (exit 0); node-waf configure build"` failed with 1
npm ERR! errno {}
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/codex/apps/vs-aggregator/npm-debug.log
npm not ok

The module 'net' does not have an isIP method. Tested on node v0.2.3

geoip.Country.code_by_addr(data, '8.8.8.8');
TypeError: Object # has no method 'isIP'
at /usr/local/lib/node/.npm/geoip/0.1.1/package/lib/utils.js:41:22
at Object.record_by_addr (/usr/local/lib/node/.npm/geoip/0.1.1/package/city.js:171:17)
at Object.code_by_addr (/usr/local/lib/node/.npm/geoip/0.1.1/package/country.js:56:23)
at [object Context]:1:15
at Interface. (repl:96:19)
at Interface.emit (events:27:15)
at Interface._ttyWrite (readline:295:12)
at Interface.write (readline:132:30)
at Stream. (repl:77:9)
at Stream.emit (events:27:15)

symbol lookup error

Hi,

First of all I want to thank you about this amazing project! if I'll manage to get it work, it will help me a lot!!

Just installed it from the npm
and when I require geoip im getting this error message:

node: symbol lookup error: /root/node_modules/geoip/build/Release/geoip.node: undefined symbol: GeoIP_lib_version

What seems to be the problem?

tnx

Install fails on OSX for node 0.8.1

Hello, I updated to node 0.8.1

☹ npm install geoip

[email protected] install /Users/khinester/Sandboxes/zeitgeist/phoenix/ui/core/js/node/node_modules/geoip
node-gyp rebuild

CXX(target) Release/obj.target/geoip.node/src/init.o
CXX(target) Release/obj.target/geoip.node/src/global.o
make: *** No rule to make target Release/obj.target/geoip.node/src/contry.o', needed byRelease/geoip.node.node'. Stop.
gyp ERR! rebuild error Error: make failed with exit code: 2
gyp ERR! rebuild error at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:214:23)
gyp ERR! rebuild error at ChildProcess.EventEmitter.emit (events.js:91:17)
gyp ERR! rebuild error at Process._handle.onexit (child_process.js:674:10)
gyp ERR! not ok
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! sh "-c" "node-gyp rebuild" failed with 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the geoip package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get their info via:
npm ERR! npm owner ls geoip
npm ERR! There is likely additional logging output above.

npm ERR! System Darwin 10.8.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "geoip"
npm ERR! cwd /Users/khinester/Sandboxes/zeitgeist/phoenix/ui/core/js/node
npm ERR! node -v v0.8.1
npm ERR! npm -v 1.1.37
npm ERR! code ELIFECYCLE
npm ERR! message [email protected] install: node-gyp rebuild
npm ERR! message sh "-c" "node-gyp rebuild" failed with 1
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/khinester/Sandboxes/zeitgeist/phoenix/ui/core/js/node/npm-debug.log
npm ERR! not ok code 0

npm install fails

Hi,

I am on ubuntu and have the geoip native package installed and running.

When I run "npm install geoip" I get the following error log:

> [email protected] preinstall /home/ubuntu/local/node/lib/node_modules/geoip
> node-waf clean || true; node-waf configure build

Nothing to clean (project not configured)
Checking for program g++ or c++          : /usr/bin/g++ 
Checking for program cpp                 : /usr/bin/cpp 
Checking for program ar                  : /usr/bin/ar 
Checking for program ranlib              : /usr/bin/ranlib 
Checking for g++                         : ok  
Checking for node path                   : not found 
Checking for node prefix                 : ok /home/ubuntu/local/node 
'configure' finished successfully (0.025s)
Waf: Entering directory `/home/ubuntu/local/node/lib/node_modules/geoip/build'
[1/9] cxx: src/init.cc -> build/default/src/init_1.o
In file included from ../src/netspeed.h:12,
                 from ../src/init.cc:7:
../src/node_geoip.h:7:19: error: GeoIP.h: No such file or directory
../src/node_geoip.h:8:23: error: GeoIPCity.h: No such file or directory
In file included from ../src/netspeed.h:12,
                 from ../src/init.cc:7:
../src/node_geoip.h:20: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:21: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:23: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:24: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:25: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:27: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:28: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:29: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:31: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:32: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:38: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:39: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:40: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:41: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:42: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:43: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:44: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:45: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:46: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:47: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:48: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:49: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:50: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:51: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:52: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:55: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:56: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:57: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:59: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:60: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:61: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:62: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:63: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:64: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:67: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:68: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:69: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:73: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:74: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:75: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:77: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:78: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:79: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:81: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:82: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:83: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:85: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:86: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:87: error: ‘GEOIP_API’ does not name a type
../src/node_geoip.h:90: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:92: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:94: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:97: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:98: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:99: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:101: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:102: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:103: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:106: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:109: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:112: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:115: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:118: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:121: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:124: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:126: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:127: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:129: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:130: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:131: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:132: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:134: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:135: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:136: error: expected constructor, destructor, or type conversion before ‘void’
../src/node_geoip.h:139: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:142: error: expected constructor, destructor, or type conversion before ‘const’
../src/node_geoip.h:145: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/node_geoip.h:146: error: expected constructor, destructor, or type conversion before ‘char’
../src/node_geoip.h:153: error: expected constructor, destructor, or type conversion before ‘int’
../src/node_geoip.h:159: error: expected constructor, destructor, or type conversion before ‘*’ token
../src/node_geoip.h:160: error: expected constructor, destructor, or type conversion before ‘*’ token
In file included from ../src/init.cc:7:
../src/netspeed.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/netspeed.h:21: error: expected ‘;’ before ‘*’ token
In file included from ../src/init.cc:8:
../src/country.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/country.h:21: error: expected ‘;’ before ‘*’ token
In file included from ../src/init.cc:9:
../src/region.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/region.h:21: error: expected ‘;’ before ‘*’ token
../src/region.h:46: error: ISO C++ forbids declaration of ‘GeoIPRegion’ with no type
../src/region.h:46: error: expected ‘;’ before ‘*’ token
In file included from ../src/init.cc:10:
../src/city.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/city.h:21: error: expected ‘;’ before ‘*’ token
../src/city.h:48: error: ISO C++ forbids declaration of ‘GeoIPRecord’ with no type
../src/city.h:48: error: expected ‘;’ before ‘*’ token
In file included from ../src/init.cc:11:
../src/org.h:21: error: ISO C++ forbids declaration of ‘GeoIP’ with no type
../src/org.h:21: error: expected ‘;’ before ‘*’ token
Waf: Leaving directory `/home/ubuntu/local/node/lib/node_modules/geoip/build'
Build failed:  -> task failed (err #1): 
    {task: cxx init.cc -> init_1.o}
npm ERR! error installing [email protected] Error: [email protected] preinstall: `node-waf clean || true; node-waf configure build`
npm ERR! error installing [email protected] `sh "-c" "node-waf clean || true; node-waf configure build"` failed with 1
npm ERR! error installing [email protected]     at ChildProcess.<anonymous> (/home/ubuntu/local/node/lib/node_modules/npm/lib/utils/exec.js:49:20)
npm ERR! error installing [email protected]     at ChildProcess.emit (events.js:67:17)
npm ERR! error installing [email protected]     at ChildProcess.onexit (child_process.js:192:12)
npm ERR! [email protected] preinstall: `node-waf clean || true; node-waf configure build`
npm ERR! `sh "-c" "node-waf clean || true; node-waf configure build"` failed with 1
npm ERR! 
npm ERR! Failed at the [email protected] preinstall script.
npm ERR! This is most likely a problem with the geoip package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-waf clean || true; node-waf configure build
npm ERR! You can get their info via:
npm ERR!     npm owner ls geoip
npm ERR! There is likely additional logging output above.
npm ERR! 
npm ERR! System Linux 2.6.32-316-ec2
npm ERR! command "node" "/home/ubuntu/local/node/bin/npm" "install" "geoip" "-g"
npm ERR! cwd /home/ubuntu/MyApp
npm ERR! node -v v0.4.10
npm ERR! npm -v 1.0.18
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/ubuntu/MyApp/npm-debug.log
npm not ok

GeoIP not installable under node v0.10.4

Was installable under node v0.10.1, but cannot be installed under node v0.10.4.
Installation works with -g flag but then the application cannot find the 'geoip' module

$ npm install geoip
npm http GET https://registry.npmjs.org/geoip
npm http 304 https://registry.npmjs.org/geoip

> [email protected] install /opt/apollo/node_modules/geoip
> node-gyp rebuild

gyp ERR! configure error
gyp ERR! stack Error: Command failed: Traceback (most recent call last):
gyp ERR! stack   File "/usr/lib/python2.7/site.py", line 562, in <module>
gyp ERR! stack     main()
gyp ERR! stack   File "/usr/lib/python2.7/site.py", line 544, in main
gyp ERR! stack     known_paths = addusersitepackages(known_paths)
gyp ERR! stack   File "/usr/lib/python2.7/site.py", line 271, in addusersitepackages
gyp ERR! stack     user_site = getusersitepackages()
gyp ERR! stack   File "/usr/lib/python2.7/site.py", line 246, in getusersitepackages
gyp ERR! stack     user_base = getuserbase() # this will also set USER_BASE
gyp ERR! stack   File "/usr/lib/python2.7/site.py", line 236, in getuserbase
gyp ERR! stack     USER_BASE = get_config_var('userbase')
gyp ERR! stack   File "/usr/lib/python2.7/sysconfig.py", line 577, in get_config_var
gyp ERR! stack     return get_config_vars().get(name)
gyp ERR! stack   File "/usr/lib/python2.7/sysconfig.py", line 481, in get_config_vars
gyp ERR! stack     _CONFIG_VARS['userbase'] = _getuserbase()
gyp ERR! stack   File "/usr/lib/python2.7/sysconfig.py", line 206, in _getuserbase
gyp ERR! stack     return env_base if env_base else joinuser("~", ".local")
gyp ERR! stack   File "/usr/lib/python2.7/sysconfig.py", line 192, in joinuser
gyp ERR! stack     return os.path.expanduser(os.path.join(*args))
gyp ERR! stack   File "/usr/lib/python2.7/posixpath.py", line 260, in expanduser
gyp ERR! stack     userhome = pwd.getpwuid(os.getuid()).pw_dir
gyp ERR! stack KeyError: 'getpwuid(): uid not found: 24561'
gyp ERR! stack
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:632:15)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at maybeClose (child_process.js:730:16)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:797:5)
gyp ERR! System Linux 3.2.0-35-virtual
gyp ERR! command "node" "/usr/bin/nodejs/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /opt/apollo/node_modules/geoip
gyp ERR! node -v v0.10.4
gyp ERR! node-gyp -v v0.9.5
gyp ERR! not ok
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! `sh "-c" "node-gyp rebuild"` failed with 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the geoip package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls geoip
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 3.2.0-35-virtual
npm ERR! command "/usr/bin/nodejs/bin/node" "/usr/bin/nodejs/bin/npm" "install" "geoip"
npm ERR! cwd /opt/apollo
npm ERR! node -v v0.10.4
npm ERR! npm -v 1.2.18
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /opt/apollo/npm-debug.log
npm ERR! not ok code 0

Crash and burn when given an invalid .dat file

I just spent half an hour trying to figure out what was wrong with the server I'd just moved an application to, when it turns out the only problem is that the GeoIP .dat I was pointing at wasn't what I thought it was. Rather than a helpful error telling me that the file couldn't be read properly, I was seeing this:

xd6:~$ node
> var geoip = require('geoip')
undefined
> var city = new geoip.City("/usr/share/GeoIP/GeoIP.dat"); // NOT GeoIPCity
*** glibc detected *** node: double free or corruption (!prev): 0x09aa8b60 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x75ee2)[0xb745aee2]
/usr/lib/i386-linux-gnu/libstdc++.so.6(_ZdlPv+0x1f)[0xb769e51f]
/home/xd6/node_modules/geoip/build/Release/geoip.node(_ZN5geoip4City3NewERKN2v89ArgumentsE+0x1d7)[0xb73c60e7]
node[0x830da2c]
[0xa150a236]
[0xa150f30f]
[0xb084e8e2]
[0xa150f3d9]
[0xa150a0aa]
node[0x83307ed]
======= Memory map: ========
08048000-08780000 r-xp 00000000 ca:01 6111761    /usr/bin/nodejs
08780000-08781000 r-xp 00737000 ca:01 6111761    /usr/bin/nodejs
08781000-0878b000 rwxp 00738000 ca:01 6111761    /usr/bin/nodejs
0878b000-08793000 rwxp 00000000 00:00 0 
09a7a000-09b8e000 rwxp 00000000 00:00 0          [heap]
82300000-82349000 rwxp 00000000 00:00 0 
84c00000-84c29000 rwxp 00000000 00:00 0 
87900000-87909000 rwxp 00000000 00:00 0 
87909000-8790a000 ---p 00000000 00:00 0 
8790a000-87933000 rwxp 00000000 00:00 0
87933000-87934000 ---p 00000000 00:00 0 
88ccc000-88ccd000 r-xp 00000000 00:00 0 
8a722000-8a740000 ---p 00000000 00:00 0 
8a740000-8a750000 rwxp 00000000 00:00 0 
8a750000-8a752000 ---p 00000000 00:00 0 
8f97c000-8f97d000 r-xp 00000000 00:00 0 
93600000-93700000 rwxp 00000000 00:00 0 
94d8b000-94d8c000 r-xp 00000000 00:00 0 
a1500000-a1509000 rwxp 00000000 00:00 0 
a1509000-a150a000 ---p 00000000 00:00 0 
a150a000-a156a000 rwxp 00000000 00:00 0 
a156a000-a156b000 ---p 00000000 00:00 0 
a40a9000-a40aa000 r-xp 00000000 00:00 0 
aab77000-aac77000 rwxp 00000000 00:00 0 
ab2a3000-ab2a4000 r-xp 00000000 00:00 0 
ac398000-ac399000 r-xp 00000000 00:00 0 
b0800000-b0809000 rwxp 00000000 00:00 0 
b0809000-b080a000 ---p 00000000 00:00 0 
b080a000-b08ff000 rwxp 00000000 00:00 0 
b08ff000-b0900000 ---p 00000000 00:00 0 
b1100000-b1121000 rwxp 00000000 00:00 0 
b3e00000-b3f00000 rwxp 00000000 00:00 0 
b6000000-b6700000 ---p 00000000 00:00 0 
b6700000-b6800000 rwxp 00000000 00:00 0 
b6800000-b6f00000 ---p 00000000 00:00 0 
b6f00000-b7000000 rwxp 00000000 00:00 0 
b70ff000-b7200000 rwxp 00000000 00:00 0 
b7200000-b7221000 rwxp 00000000 00:00 0 
b7221000-b7300000 ---p 00000000 00:00 0 
b738a000-b73ba000 r-xp 00000000 ca:01 6063879    /usr/lib/libGeoIP.so.1.4.8
b73ba000-b73bb000 r-xp 00030000 ca:01 6063879    /usr/lib/libGeoIP.so.1.4.8
b73bb000-b73bc000 rwxp 00031000 ca:01 6063879    /usr/lib/libGeoIP.so.1.4.8
b73bc000-b73cf000 r-xp 00000000 ca:01 3164473    /home/xd6/node_modules/geoip/build/Release/geoip.node
b73cf000-b73d0000 r-xp 00012000 ca:01 3164473    /home/xd6/node_modules/geoip/build/Release/geoip.node
b73d0000-b73d1000 rwxp 00013000 ca:01 3164473    /home/xd6/node_modules/geoip/build/Release/geoip.node
b73d1000-b73d2000 ---p 00000000 00:00 0 
b73d2000-b73e5000 rwxp 00000000 00:00 0 
b73e5000-b7588000 r-xp 00000000 ca:01 12469620   /lib/i386-linux-gnu/libc-2.15.so
b7588000-b7589000 ---p 001a3000 ca:01 12469620   /lib/i386-linux-gnu/libc-2.15.so
b7589000-b758b000 r-xp 001a3000 ca:01 12469620   /lib/i386-linux-gnu/libc-2.15.so
b758b000-b758c000 rwxp 001a5000 ca:01 12469620   /lib/i386-linux-gnu/libc-2.15.so
b758c000-b758f000 rwxp 00000000 00:00 0 
b758f000-b75a6000 r-xp 00000000 ca:01 12469629   /lib/i386-linux-gnu/libpthread-2.15.so
b75a6000-b75a7000 r-xp 00016000 ca:01 12469629   /lib/i386-linux-gnu/libpthread-2.15.so
b75a7000-b75a8000 rwxp 00017000 ca:01 12469629   /lib/i386-linux-gnu/libpthread-2.15.so
b75a8000-b75aa000 rwxp 00000000 00:00 0 
b75aa000-b75c6000 r-xp 00000000 ca:01 12468330   /lib/i386-linux-gnu/libgcc_s.so.1
b75c6000-b75c7000 r-xp 0001b000 ca:01 12468330   /lib/i386-linux-gnu/libgcc_s.so.1
b75c7000-b75c8000 rwxp 0001c000 ca:01 12468330   /lib/i386-linux-gnu/libgcc_s.so.1
b75c8000-b75f2000 r-xp 00000000 ca:01 12469631   /lib/i386-linux-gnu/libm-2.15.so
b75f2000-b75f3000 r-xp 00029000 ca:01 12469631   /lib/i386-linux-gnu/libm-2.15.so
b75f3000-b75f4000 rwxp 0002a000 ca:01 12469631   /lib/i386-linux-gnu/libm-2.15.so
b75f4000-b75f5000 rwxp 00000000 00:00 0 
b75f5000-b76cd000 r-xp 00000000 ca:01 6129347    /usr/lib/i386-linux-gnu/libstdc++.so.6.0.16
b76cd000-b76ce000 ---p 000d8000 ca:01 6129347    /usr/lib/i386-linux-gnu/libstdc++.so.6.0.16
b76ce000-b76d2000 r-xp 000d8000 ca:01 6129347    /usr/lib/i386-linux-gnu/libstdc++.so.6.0.16
b76d2000-b76d3000 rwxp 000dc000 ca:01 6129347    /usr/lib/i386-linux-gnu/libstdc++.so.6.0.16
b76d3000-b76da000 rwxp 00000000 00:00 0 
b76da000-b76e1000 r-xp 00000000 ca:01 12469627   /lib/i386-linux-gnu/librt-2.15.so
b76e1000-b76e2000 r-xp 00006000 ca:01 12469627   /lib/i386-linux-gnu/librt-2.15.so
b76e2000-b76e3000 rwxp 00007000 ca:01 12469627   /lib/i386-linux-gnu/librt-2.15.so
b76e3000-b76e6000 r-xp 00000000 ca:01 12469635   /lib/i386-linux-gnu/libdl-2.15.so
b76e6000-b76e7000 r-xp 00002000 ca:01 12469635   /lib/i386-linux-gnu/libdl-2.15.so
b76e7000-b76e8000 rwxp 00003000 ca:01 12469635   /lib/i386-linux-gnu/libdl-2.15.so
b76ec000-b76f1000 rwxp 00000000 00:00 0 
b76f1000-b76f2000 r-xp 00000000 00:00 0          [vdso]
b76f2000-b7712000 r-xp 00000000 ca:01 12469632   /lib/i386-linux-gnu/ld-2.15.so
b7712000-b7713000 r-xp 0001f000 ca:01 12469632   /lib/i386-linux-gnu/ld-2.15.so
b7713000-b7714000 rwxp 00020000 ca:01 12469632   /lib/i386-linux-gnu/ld-2.15.so
b94db000-b98db000 rwxp 00000000 00:00 0 
bcf00000-bcf39000 rwxp 00000000 00:00 0 
bfb51000-bfb72000 rwxp 00000000 00:00 0          [stack]
Aborted
xd6:~$

Could we maybe perform a quick check to ensure that the data being read in is valid?

Error: Unable to load shared library

I'm running into the following problem when I try to use the module.

OS: Red Hat Enterprise Linux Server release 5.3 (Tikanga)
Kernel: Linux myserver 2.6.18-128.el5 #1 SMP Wed Dec 17 11:41:38 EST 2008 x86_64 x86_64 x86_64 GNU/Linux
NPM: 1.1.16
Node: v0.6.15
GeoIP: 1.4.8

Code:

var geoip = require('geoip');

var edition = geoip.check('/home/project/GeoLiteCity.dat');

console.log(edition);

Error:

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Unable to load shared library /home/project/node_modules/geoip/build/Release/geoip.node
    at Object..node (module.js:472:11)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12)
    at Module.require (module.js:354:17)
    at require (module.js:370:17)
    at Object.<anonymous> (/home/project/node_modules/geoip/index.js:4:15)
    at Module._compile (module.js:441:26)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12

geoip::City::lookup returns "Data not found" when geoip::City::lookupSync works correctly

note: works for most ip addresses that I can tell, but not the one used in the below example.

setup geoip

var geoip = require("geoip").City;
var geoIpCity = new geoip('./lib/geoip/GeoLiteCity20120213.dat');
var ipAddress = "199.182.212.174";

geoIpCity.lookupSync

geoIpCity.lookupSync(ipAddress)

result

{ country_code: 'US',
 country_code3: 'USA',
 country_name: 'United States',
 region: 'IL',
 city: 'Des Plaines',
 postal_code: '60018',
 latitude: 41.998600006103516,
 longitude: -87.90280151367188,
 metro_code: 602,
 dma_code: 602,
 area_code: 847,
 continent_code: 'NA',
 time_zone: 'America/Chicago' }

geoIpCity.lookup

geoIpCity.lookup(ipAddress, function(err, location) {
  console.log(err, location);
})

result

[Error: Data not found] null

installation problema

Hi, i am having a serious problem during geoip installation. Please see screenshot below

ciddedbd

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.