1.0.4 • Published 1 year ago

ipapi-tools v1.0.4

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

ipapi-tools

npm version NPM downloads

ipapi-tools is a simple Node.js package that fetches location information based on the client's IP address using the ip-api service.

Features

  • Fetch location data using the client's IP address
  • Easy-to-use API
  • Lightweight and fast

Installation

You can install ipapi-tools using npm:

npm install ipapi-tools

Usage

Here's how you can use ipapi-tools in your project:

const { getLocationByIp } = require('ipapi-tools');

// Example usage in an Express route
app.get('/api/location', async (req, res) => {
  const clientIp = req.ip;

  try {
    const locationData = await getLocationByIp(clientIp);
    res.status(200).json(locationData);
  } catch (error) {
    console.error(error);
    res.status(500).send('An error occurred while fetching location data');
  }
});

API

getLocationByIp(ip: string): Promise<LocationData>

Fetches location data based on the provided IP address.

Parameters

  • ip: The IP address to fetch the location data for.

Returns

A promise that resolves to an object containing the location data.

interface LocationData {
  query: string;
  status: string;
  country: string;
  countryCode: string;
  region: string;
  regionName: string;
  city: string;
  zip: string;
  lat: number;
  lon: number;
  timezone: string;
  isp: string;
  org: string;
  as: string;
}

Example response:

{
  "query": "24.48.0.1",
  "status": "success",
  "country": "Canada",
  "countryCode": "CA",
  "region": "QC",
  "regionName": "Quebec",
  "city": "Montreal",
  "zip": "H1K",
  "lat": 45.6085,
  "lon": -73.5493,
  "timezone": "America/Toronto",
  "isp": "Le Groupe Videotron Ltee",
  "org": "Videotron Ltee",
  "as": "AS5769 Videotron Ltee"
}

TypeScript

If you are using TypeScript, ipapi-tools includes a type definition file. You can import and use the types as follows:

import { getLocationByIp, LocationData } from 'ipapi-tools';

const clientIp = '8.8.8.8';

getLocationByIp(clientIp)
  .then((locationData: LocationData) => {
    console.log(locationData);
  })
  .catch((error) => {
    console.error(error);
  });

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any bugs or feature requests.

Acknowledgements

  • ip-api for providing the IP geolocation service.

Author

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago