Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

sypexgeo-vyvid

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sypexgeo-vyvid

Unnoficial Sypex Geo API bindings for Node.JS

  • 0.2.9
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
11
increased by1000%
Maintainers
1
Weekly downloads
 
Created
Source

Unofficial Sypex Geo API bindings for Node.JS.

The latest version works only with:
* SypexGeo 2.2! See changelog.
* SxGeoCity_utf8 (See Gruntfile.js)

Getting Started

Warning! This package does not compile on Windows.

Requirements

  • g++ >= 4.8 for supporting C++11.

Setup

$ npm i --save sypexgeo-vyvid

Using

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, '  '));

Documentation

sypex.Geo

Creates an instance.

var geoDb = new sypex.Geo('/var/www/geo/SypexGeoCity.dat');
Parameters
  1. {String} filePath - A full path to the SypexGeo DB file.
  2. [deprecated] {Number} mode - Specifies a behaviour. Available only SXGEO_MEMORY. It will be removed in 0.3.0

The mode is always SXGEO_BATCH | SXGEO_MEMORY regardless of arguments you pass in.

find

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": "Арзамас"
    }
  }
} 
**/
Parameters
  • {String} ip - The IP-address, for example: 46.148.53.103.
Returns
  • {Object, null} - null if the database hasn't a location with a specified ip.

An object describes a found location:

  • {Number} longitude - 5 digits (e.g., 55.39485) after the decimal point if the city is detected. Otherwise, 2 (e.g. 51.5)
  • {Number} latitude
  • {Object} country
    • {Number} id
    • {String} iso
    • {Object} name
      • {String} en
      • {String} ru
  • [optional] {Object} region - The information about a region. Omitted if wasn't detected
    • {Number} id
    • {String} iso
    • {Object} name
      • {String} en
      • {String} ru
  • [optional] {Object} city - The information about a city. Omitted if wasn't detected
    • {Number} id
    • {Object} name
      • {String} en
      • {String} ru

getCountryIso

Get a country ISO (3166-1 alpha-2) by its IP.

var location = geoDb.getCountryIso('46.148.53.103');

console.log(location); // Output: RU
Parameters
  • {String} ip - The IP-address, for example: 46.148.53.103.

[deprecated] getCity

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
}
*/

[deprecated] getCityFull

The method will be removed in 0.3.0.

Alias to getCity.

[deprecated] getCountry

The method will be removed in 0.3.0.

alias to getCountryIso.

Grunt commands

  • 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.

Contributing

  • 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
    

Local development

  1. Install cmake:
  • macOS: brew install cmake
  1. Install dependencies:
  • npm i if you want to update package-lock.json;
  • npm ci if not.

How to check a CPP version

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:
...

Changelog

0.2.*

Works with SypexGeo 2.2.

  • [-] The fips field has been removed (removed from a database);
  • [+] The find and getCountryIso methods have been added;
  • [!] The getCountry, getCity and getCityFull now is deprecated;
  • [!] Completely rewritten code;
  • [!] Requires GCC 4.8.

0.1.*

Works with SypexGeo 2.1.

  • 0.1.1 - Ported to Nan

License

Copyright by Vyatcheslav Suharnikov and contributors.

See contributors list in AUTHORS.

Licensed under the MIT license, see license text in LICENSE file.

Keywords

FAQs

Package last updated on 27 Oct 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc