ip-geo-get-location
v1.0.4
Published
Module to fetch IP geolocation data using Puppeteer
Readme
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-locationUsage
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 falseAPI 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:
trueif the IP is valid,falseotherwise.
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 \
libxshmfence1License
This project is licensed under the MIT License.
Author
Harris Munahar
Feel free to contribute or raise issues if you encounter any problems! 🚀
