Unofficial Sypex Geo API bindings for Node.JS (Only Linux/MacOS, see #13)
MIT License
Unofficial Sypex Geo API bindings for Node.JS.
The latest version works only with:
* SypexGeo 2.2! See changelog.
* SxGeoCity_utf8 (See Gruntfile.js)
Warning! This package does not compile on Windows.
$ npm i --save sypexgeo-vyvid
var sypex = require('sypexgeo-vyvid');
var geoDb = new sypex.Geo('/a/full/path/to/the/SypexGeoCity.dat');
var location = geoDb.find('46.148.53.103');
console.log(JSON.stringify(location, null, ' '));
Creates an instance.
var geoDb = new sypex.Geo('/var/www/geo/SypexGeoCity.dat');
The mode is always SXGEO_BATCH | SXGEO_MEMORY regardless of arguments you pass in.
Looks up for a location by its IP.
var location = geoDb.find('46.148.53.103');
console.log(JSON.stringify(location, null, ' '));
/** Output:
{
"latitude": 55.39485,
"longitude": 43.83992,
"country": {
"id": 185,
"iso": "RU",
"name": {
"en": "Russia",
"ru": "Россия"
}
},
"region": {
"id": 559838,
"iso": "RU-NIZ",
"name": {
"en": "Nizhegorodskaya Oblast'",
"ru": "Нижегородская область"
}
},
"city": {
"id": 580724,
"name": {
"en": "Arzamas",
"ru": "Арзамас"
}
}
}
**/
An object describes a found location:
Get a country ISO (3166-1 alpha-2) by its IP.
var location = geoDb.getCountryIso('46.148.53.103');
console.log(location); // Output: RU
The method will be removed in 0.3.0.
var city = geoDb.getCityFull('46.148.53.103');
console.log(JSON.stringify(city, null, ' '));
/** Output:
{
"region": "Нижегородская область",
"country": "RU",
"name": "Арзамас",
"latitude": 55.39485,
"longitude": 43.83992
}
*/
The method will be removed in 0.3.0.
Alias to getCity.
The method will be removed in 0.3.0.
alias to getCountryIso.
grunt test
- run tests. Downloads a base if it necessary. At this time we have only JS-tests :)grunt cpplint
- check a cpp code for some rules.Please check your code by the command: grunt cpplint
If you need a manual build, then run:
npm run-script configure &&\
npm run-script build &&\
npm run-script test
brew install cmake
npm i
if you want to update package-lock.json
;npm ci
if not.cmake CMakeLists.txt &&\
make &&\
./sypexgeo_vyvid
You will see the output:
=== City at 77.50.211.86 ===
Longitude: 100
Latitude: 60
Country id: 185
Country ISO: RU
Russian country name: Россия
English country name: Russia
Region id: 0
Region ISO:
Russian region name:
English region name:
City id: 0
Russian city name:
English city name:
...
Works with SypexGeo 2.2.
Works with SypexGeo 2.1.
Copyright by Vyatcheslav Suharnikov and contributors.
See contributors list in AUTHORS.
Licensed under the MIT license, see license text in LICENSE file.