iptocountry
v1.0.2
Published
A module for detecting country information of IP addresses without any API call
Downloads
9
Readme
IP to Country
IP to Country is a module for detecting country information of IP addresses without any API call.
Installation
npm install iptocountry
Usage
REST API
npm start
# See http://localhost:12080/search?ip=74.125.225.71
# See http://localhost:12080/search?ip=74.125.225.71,98.138.253.109
Download IP database
var ip2co = require('iptocountry');
if(ip2co.dbCSVCheckExp(48)) {
ip2co.dbGet().then(function() {
console.log('done!');
}, function(err) {
console.log(err);
});
}
// done!
Search IP addresses
var ip2co = require('iptocountry');
var ipSearch = ip2co.ipSearch(['74.125.225.71', '98.138.253.109']);
if(!ipSearch.error) {
console.log(JSON.stringify(ipSearch, null, 2));
} else {
console.log(ipSearch.error);
};
/*
{
"data": {
"74.125.225.71": {
"ip": "74.125.225.71",
"ipNum": 1249763655,
"registery": "arin",
"assigned": "1173744000",
"coCode2": "US",
"coCode3": "USA",
"country": "United States",
"time": "2007-03-13 00:00:00",
"found": true
},
"98.138.253.109": {
"ip": "98.138.253.109",
"ipNum": 1653276013,
"registery": "arin",
"assigned": "1196985600",
"coCode2": "US",
"coCode3": "USA",
"country": "United States",
"time": "2007-12-07 00:00:00",
"found": true
}
},
"warnings": [],
"timeE": 51
}
*/
Listen HTTP requests
var ip2co = require('iptocountry');
ip2co.dbLoad();
ip2co.listenHTTP({hostname: 'localhost', 'port': 12080});
// See http://localhost:12080/search?ip=74.125.225.71
For performance test; ab -n 1000 http://localhost:12080/search?ip=74.125.225.71
Notes
- It uses Webnet77 for IP database file. It represents the over 4 billion IPV4 numbers as well as the virtually inexhaustible IPV6 range (3.4e+38). There is limit for downloads, for more information see FAQ
Implementations
- [x] IPv4
- [ ] IPv6
License
Licensed under The MIT License (MIT)
For the full copyright and license information, please view the LICENSE.txt file.