Giter Site home page Giter Site logo

ipapi-is / ip_to_hosting Goto Github PK

View Code? Open in Web Editor NEW
14.0 3.0 1.0 13 KB

This package allows you to check whether an IP address belongs to a hosting provider or not. In case the IP address can be successfully linked to a hosting provider (datacenter), this module will return the meta information for the hosting provider.

Home Page: https://ipapi.is/

JavaScript 68.37% Shell 5.70% HTML 25.93%
api aws azure cloud-provider gcp datacenter-detection hosting-detection

ip_to_hosting's Introduction

IP to Hosting

Npm package version Npm package yearly downloads

This package allows you to check whether an IP address belongs to a hosting/cloud provider. In case the IP belongs to a hosting provider (datacenter), this module will return the meta information for the hosting provider.

Currently, there are more than 180,000 IP ranges from more than 4,400 hosting providers in the database. Learn more, by reading the documentation.

Installation

You can both use this package from Node.js and in the browser with vanilla JavaScript.

npm install ip-to-hosting

If you want to clone the repository directly from GitHub instead:

git clone [email protected]:ipapi-is/ip_to_hosting.git

Usage from Node.js

If you want to lookup the following IP addresses:

const { ipToHosting } = require('ip-to-hosting');

const ipAddresses = [
  '144.168.164.55',
  '167.99.241.66',
  '97.107.129.77',
  '85.10.199.76',
];

for (let ip of ipAddresses) {
  ipToHosting(ip).then(function (isHosting) {
    console.log(`${ip} isHosting:`);
    console.log(isHosting);
  });
}

which yields:

85.10.199.76 isHosting:
{
  datacenter: 'Hetzner Online GmbH',
  domain: 'www.hetzner.com',
  network: '85.10.192.0 - 85.10.207.255'
}
167.99.241.66 isHosting:
{
  datacenter: 'DigitalOcean',
  code: '60341',
  city: 'Frankfurt',
  state: 'DE-HE',
  country: 'DE',
  network: '167.99.240.0/20'
}
144.168.164.55 isHosting:
{
  datacenter: 'ServerMania Inc.',
  domain: 'https://www.servermania.com/',
  network: '144.168.128.0-144.168.255.255'
}
97.107.129.77 isHosting:
{
  datacenter: 'Linode',
  domain: 'https://www.linode.com/',
  network: '97.107.128.0-97.107.143.255'
}

If the IP address belongs to a datacenter/hosting provider, the API response will return an object with the following required attributes:

  • datacenter - string - to which datacenter the IP address belongs. For a full list of datacenters, check the ipapi.is/json/info endpoint. In this case, the datacenter's name is B2 Net Solutions Inc.
  • domain - string - The domain name of the company
  • network - string - the network this IP address belongs to (In the above case: 144.168.128.0 - 144.168.255.255)

With some datacenter providers, more meta data is available. Consult the API documentation page in order to learn more.

Most IP's don't belong to a hosting provider. In those cases, the response will be null.

Usage from the Browser

Copy the browser JavaScript bundle to your preferred location. After installing the module with

npm install ip-to-hosting

you can find the minified JavaScript here: node_modules/ip-to-hosting/dist/ipToHosting.min.js

<!doctype html>

<html lang="en">

<head>
  <meta charset="utf-8">
  <title>IP to Hosting Example Browser</title>
  <meta name="description" content="IP to Hosting Example">
  <meta name="author" content="ipapi.is">
</head>

<body>
  <pre id="hosting"></pre>
  <script type="text/javascript" src="dist/ipToHosting.min.js"></script>
  <script type="text/javascript">
    ipToHosting('43.33.44.11').then((res) => {
      document.getElementById('hosting').innerText = JSON.stringify(res, null, 2);
    });
  </script>
</body>

</html>

Use the Database Directly

This package uses the ipapi.is API in order to avoid shipping a huge database in the npm module. If you have a large volume of IP addresses to lookup, you can download the full & free Hosting Provider Database.

GitHub mirror of the database: Hosting Provider Database Mirror

ip_to_hosting's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

internetbuilder

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.