1.0.4 • Published 5 months ago
ip-geo-get-location v1.0.4
IP Geo Location
Overview
IP Geo Location is an npm module that retrieves geographical location data for an IP address using Puppeteer.
Features
- Retrieves geographical data of an IP address
- Supports both IPv4 and IPv6 formats
- Implements request queueing to handle multiple requests efficiently
- Automatically installs necessary dependencies on Linux systems
Installation
Prerequisites
- Ensure Node.js (>=14) and npm are installed on your system
- On Linux, the module will attempt to install Chromium and other required packages automatically
Install the Package
npm install ip-geo-get-location
Usage
Import the Module
const { getIpGeoLocation, isValidIP } = require("@funtsu/ip-geo-location");
Fetch IP Geolocation
(async () => {
try {
const data = await getIpGeoLocation("8.8.8.8");
console.log(data);
} catch (error) {
console.error(error.message);
}
})();
Validate IP Format
const ip = "192.168.1.1";
console.log(isValidIP(ip)); // true or false
API Reference
getIpGeoLocation(ip: string): Promise<Object>
Retrieves geolocation details of the given IP address.
Parameters:
ip
(string) - The IP address to lookup (IPv4 or IPv6)
Returns:
- A Promise resolving to an object containing location details.
- Example response:
{ "query": "8.8.8.8", "status": "success", "country": "United States", "regionName": "California", "city": "Mountain View", "zip": "94043", "lat": 37.4056, "lon": -122.0775, "isp": "Google LLC", "org": "Google Public DNS", "as": "AS15169 Google LLC" }
isValidIP(ip: string): boolean
Validates whether the given IP address is in a correct format.
Parameters:
ip
(string) - The IP address to validate.
Returns:
true
if the IP is valid,false
otherwise.
Linux Dependency Installation
If you are running this module on Ubuntu CLI, the following dependencies will be installed automatically:
apt update && apt install -y \
libgbm-dev \
libasound2 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libcups2 \
libdrm2 \
libxkbcommon-x11-0 \
libxcomposite1 \
libxdamage1 \
libxrandr2 \
libgbm1 \
libgtk-3-0 \
libnss3 \
libxss1 \
libwayland-client0 \
libwayland-server0 \
libxshmfence1
License
This project is licensed under the MIT License.
Author
Harris Munahar
Feel free to contribute or raise issues if you encounter any problems! 🚀