geoip-lite-country
Version:
Stripped down version of geoip-lite, supporting only country lookup.
86 lines (57 loc) • 2.39 kB
Markdown
GeoIP-lite-country
==================
Stripped down node-geoip-lite. Only supports country lookup and IPv4.
Software is written by Philip Tellis <philip@bluesmoon.info>, latest version is available at https://github.com/bluesmoon/node-geoip
synopsis
--------
```javascript
var geoip = require('geoip-lite');
var ip = "207.97.227.239";
var geo = geoip.lookup(ip);
console.log(geo);
{ range: [ 3479299040, 3479299071 ],
country: 'US',
region: '' }
```
installation
------------
### 1. get the library
$ npm install geoip-lite-country
### 2. get the datafiles
Then download the city data files from https://github.com/bluesmoon/node-geoip/tree/master/data
You need to get `geoip-city.dat` and `geoip-city-names.dat` and put them into the `data/` directory
of this package.
API
---
### Looking up an IP address ###
If you have an IP address in dotted quad notation, IPv6 colon notation, or a 32 bit unsigned integer (treated
as an IPv4 address), pass it to the `lookup` method. Note that you should remove any `[` and `]` around an
IPv6 address before passing it to this method.
```javascript
var geo = geoip.lookup(ip);
```
If the IP address was found, the `lookup` method returns an object with the following structure:
```javascript
{
range: [ <low bound of IP block>, <high bound of IP block> ],
country: 'XX', // 2 letter ISO-3166-1 country code
}
```
The actual values for the `range` array should be considered internal to `geoip-lite`.
To get a human readable format, pass them to `geoip.pretty()`
If the IP address was not found, the `lookup` returns `null`
### Pretty printing an IP address ###
If you have a 32 bit unsigned integer, or a number returned as part of the `range` array from the `lookup` method,
the `pretty` method can be used to turn it into a human readable string.
```javascript
console.log("The IP is %s", geoip.pretty(ip));
```
This method returns a string if the input was in a format that `geoip-lite` can recognise, else it returns the
input itself.
Copyright
---------
`geoip-lite` is Copyright 2011-2012 Philip Tellis <philip@bluesmoon.info> and the latest version of the code is
available at https://github.com/bluesmoon/node-geoip
License
-------
There are two licenses for the code and data. See the [LICENSE](https://github.com/bluesmoon/node-geoip/blob/master/LICENSE) file for details.