UNPKG

geoip2-api

Version:

This module allows obtaining the client's geolocation using their IP address, leveraging data retrieved from a fast API.

83 lines (62 loc) β€’ 2.75 kB
<div align="center"> <h1>πŸ—ΊοΈ GeoIP Lite 2: API Wrapper</h1> <a href="https://www.npmjs.com/package/geoip2-api"> <img src="https://img.shields.io/npm/dt/geoip2-api?maxAge=3600" alt="The number of downloads"> <img src="https://img.shields.io/github/last-commit/sefinek/geoip2-api" alt="Last commit"> <img src="https://img.shields.io/github/issues/sefinek/geoip2-api" alt="Issues"> <img src="https://img.shields.io/github/commit-activity/w/sefinek/geoip2-api" alt="Commit activity"> <img src="https://img.shields.io/github/languages/code-size/sefinek/geoip2-api" alt="Code size"> </a> </div> ## πŸ“ Information This documentation covers a lightweight Node.js module designed for interacting with a geolocation data API. The module enables efficient retrieval of location details for specific IP addresses, utilizing native modules for optimal performance. > We utilize the [MaxMind database](https://www.maxmind.com) via the [geoip-lite2](https://github.com/sefinek/geoip-lite2) module for [our API](https://api.sefinek.net/docs/v2). ## πŸ’» Locally There is an alternative to this module that allows for local geolocation retrieval based on a specific IP address. However, this will increase the memory usage because the alternative module stores the MaxMind database in RAM. > [geoip-lite2 on npm](https://www.npmjs.com/package/geoip-lite2) ## πŸ“₯ Installation ```bash npm install geoip2-api ``` ## 😎 Example ```js const geoIp = require('geoip2-api'); (async () => { const data = await geoIp.get('185.21.84.216'); console.log(data); }); ``` <div align="center"> <a href="example.js">Open example.js >></a> </div> ## ✨ Output > GET https://api.sefinek.net/api/v2/geoip/185.21.84.216 ```json { "success": true, "status": 200, "ip": "185.21.84.216", "data": { "range": [3105182720, 3105183743], "country": "PL", "region": "30", "eu": "1", "timezone": "Europe/Warsaw", "city": "PiΕ‚a", "ll": [53.1492, 16.7461], "metro": 0, "area": 20 }, "type": "unicast" } ``` ## 🌠 API Tip If you want to get the client's geolocation, instead of providing an IP, use `/api/v2/geoip/myip`. ## πŸ’™ Support For any questions or issues related to the script, please visit the [GitHub repository](https://github.com/sefinek/geoip2-api) for the latest updates and support. If you like this module, please **star** ⭐ the repository. ## πŸ”‘ MIT License This GeoIP API client script is provided under the MIT License. See the [LICENSE](LICENSE) file for more details. Copyright 2023-2024 Β© by [Sefinek](https://sefinek.net). All Rights Reserved.