apiip.net
Version:
This package allows you to get geolocation data about IP address.
186 lines (155 loc) • 6.2 kB
Markdown
"https://apiip.net"><img alt="apiip.net website status" src="https://img.shields.io/website?down_color=red&down_message=offline&label=apiip.net%20website&up_color=success&up_message=online&url=https%3A%2F%2Fapiip.net%2F"> </a>
<a href="https://status.apiip.net/"><img alt="Uptime Robot status" src="https://img.shields.io/uptimerobot/status/m789879229-16fa66289487470e7544d58a?label=API%20status"></a>
<a href="https://status.apiip.net/"><img alt="Uptime Robot ratio (30 days)" src="https://img.shields.io/uptimerobot/ratio/m789879229-16fa66289487470e7544d58a?label=API%20uptime%20%2830%20days%29"></a>
<img alt="Snyk Vulnerabilities for npm package" src="https://img.shields.io/snyk/vulnerabilities/npm/apiip.net">
<img alt="GitHub issues" src="https://img.shields.io/github/issues-raw/Apiipnet/apiip.net">
<img alt="npm downloads" src="https://img.shields.io/npm/dw/apiip.net?label=npm%20downloads">
<img alt="GitHub code size in bytes" src="https://img.shields.io/github/languages/code-size/Apiipnet/apiip.net">
<img alt="GitHub top language" src="https://img.shields.io/github/languages/top/apiipnet/apiip.net">
<img alt="NPM licence" src="https://img.shields.io/npm/l/apiip.net?color=green">
<img alt="npm version" src="https://img.shields.io/npm/v/apiip.net">
</p>
Find geolocation data from IP addresses (e.g. city, country, lat/long) using the apiip.net API.
apiip.net provides 1.000 free requests per month. For higher plans, check out the [website](https://apiip.net)
## Installation
You need to get your API key from here: https://apiip.net/get-started and you'll get 1.000 free requests/month
Install the package with:
```sh
npm install apiip.net
# or
yarn add apiip.net
```
## Usage
The package needs to be configured with your account's API key, which is available in the [Apiip.net Dashboard](https://apiip.net/user/dashboard)
```javascript
const apiip = require('apiip.net')('YOUR_API_KEY');
apiip
.getLocation()
.then((results) => console.log(results))
.catch((error) => console.error(error));
```
Or using ES6 modules and async/await:
```javascript
import Apiip from 'apiip.net';
const apiip = Apiip('YOUR_API_KEY');
(async () => {
console.log(await apiip.getLocation());
})();
```
By default, the SSL/TLS is turned on, if you want to disabled it just pass the options parameter
```javascript
const apiip = require('apiip.net')('YOUR_API_KEY', { ssl: false });
```
Or using ES6 module import
```javascript
import Apiip from 'apiip.net';
const apiip = Apiip('YOUR_API_KEY', { ssl: false });
```
Call getLocation method with config object
```javascript
const apiip = require('apiip.net')('YOUR_API_KEY');
apiip
.getLocation({
ip: '67.250.186.196', // '67.250.186.196, 188.79.34.191, 60.138.7.24' - for bulk request
output: 'xml',
fields: 'city, countryName, currency.name',
languages: 'es',
})
.then((results) => console.log(results))
.catch((error) => console.error(error));
```
| Option | Type | Description | Default |
| ----------- | -------- | ---------------------------------------------------------------------------------------------------------- | ------------ |
| `ip` | `string` | _Optional_. Get location about the specify IP or multiple IPs. | Requester IP |
| `output` | `string` | _Optional_. Specify response format, XML or JSON. | JSON |
| `fields` | `string` | _Optional_. Specify response fields. | All fields |
| `languages` | `string` | _Optional_. Specify response language. | EN |
| `callback` | `string` | _Optional_. The callback function name ([JSONP Callbacks](https://www.w3schools.com/js/js_json_jsonp.asp)) | - |
## Example complete response
```javascript
{
"ip": "67.250.186.196",
"continentCode": "NA",
"continentName": "North America",
"countryCode": "US",
"countryName": "United States",
"countryNameNative": "United States",
"regionCode":"NY"
"regionName":"New York"
"cityGeoNameId":5128581,
"city": "New York",
"postalCode": "10001",
"latitude": 40.8271,
"longitude": -73.9359,
"capital": "Washington D.C.",
"phoneCode": "1",
"countryFlagEmoj": "🇺🇸",
"countryFlagEmojUnicode": "U+1F1FA U+1F1F8",
"isEu": false,
"borders": [
"CAN",
"MEX"
],
"topLevelDomains": [
".us"
],
"languages": {
"en": {
"code": "en",
"name": "English",
"native": "English"
}
},
"currency": {
"code": "USD",
"name": "US Dollar",
"symbol": "$",
"number": "840",
"rates": {
"EURUSD": 0.99518
}
},
"timeZone": {
"id": "America/New_York",
"currentTime": "10/26/2021, 2:54:10 PM",
"code": "EDT",
"timeZoneName": "EDT",
"utcOffset": -14400
},
"userAgent": {
"isMobile": false,
"isiPod": false,
"isTablet": false,
"isDesktop": true,
"isSmartTV": false,
"isRaspberry": false,
"isBot": false,
"browser": "Chrome",
"browserVersion": "100.0.4896.127",
"operatingSystem": "Windows 10.0",
"platform": "Microsoft Windows",
"source": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"
},
"connection": {
"asn": 12271,
"isp": "Charter Communications Inc"
},
"security": {
"isProxy": false,
"isBogon": false,
"isTorExitNode": false,
"isCloud": false,
"isHosting": false,
"isSpamhaus": false,
"suggestion": "allow",
"network": "67.250.176.0/20"
}
}
```
- [API Documentation](https://apiip.net/documentation)
<p>
<a href=