locate_wifi

Get location based on WI-Fi access point BSSID using Mylnikov Geo, 3WiFi and Wigle.net

Usage no npm install needed!

<script type="module">
  import locateWifi from 'https://cdn.skypack.dev/locate_wifi';
</script>

README

Description

Library can get location of Wi-Fi access points.

Library can use open and completely free Mylnikov service, 3WiFi and limited wigle.net (you need to regigter there) if you want to use it.

Installation

You can install it with this command:

npm install locate_wifi

Usage

First require library:

const wifi = require('locate_wifi');

If you want to use OpenCellId, Mozilla Location Service or set custom socket timeout, you should initialize library before using:

wifi.init({
    // API keys
    api_name : 'you should sign up on https://wigle.net/ to get this',
    api_token: 'you should sign up on https://wigle.net/ to get this',
    api_key  : 'you should sign up on https://3wifi.stascorp.com/ to get this',

    // socket timeout in milliseconds (default is 3000)
    'timeout': 3000
});

Then perform requests the following way:

bssid = 'F8:3D:FF:BB:BA:29'; // can be in every form, i.e. 'F8:3DFF-bb:Ba 29'

wifi.mylnikov(bssid)
    .then(coords => {
        console.log(`mylnikov:`);
        console.log(JSON.stringify(coords, null, 4));
    })
    .catch(err => {
        console.log(`mylnikov ERROR:`);
        console.log(err);
    });

wifi.wigle(bssid)
    .then(coords => {
        console.log(`wigle:`);
        console.log(JSON.stringify(coords, null, 4));
    })
    .catch(err => {
        console.log(`wigle ERROR:`);
        console.log(err);
    });

wifi['3wifi'](bssid)
    .then(coords => {
        console.log(`3wifi:`);
        console.log(JSON.stringify(coords, null, 4));
    })
    .catch(err => {
        console.log(`3wifi ERROR:`);
        console.log(err);
    });


// result of every call will be like this:
// {
//    "lat"  : 59.31150685708,
//    "lon"  : 18.07485943715,
//    "ssid" : "Tele2Internet-F0029", // will be null in wifi.mylnikov()
//    "range": 141                    // will be null in wifi.wigle() and wifi['3wifi']()
// }

@license MIT
@version 1.0.5
@author Alexander Russkiy developer@xinit.ru