Hares.io | The IP Snitch
129.4 million Hosting IP addresses tracked so far
What's Hares.io ?

Is it a monitoring service ?
From the first glance, you might think it's a kind of spying or monitoring service, but in fact it's just a service that checks whether an IP belongs to a hosting provider or not.
So, What's next ?

Hares.io is a service that detects if a certain IP address belongs to a hosting provider or not.
Requests are usually sent from a hosting provider (not always), could belong to some crawlers from your competitors who like to spy on your business, some bots that collect information of your content or even for some VPN providers.


Bots detection:

By using Hares.io you can detect easily any unusual behavior from the logs of your platform. If you notice that a major number of requests are coming from Amazon Web Services servers for example or any other hosting provider, then you can take the necessary steps towards those IPs (obviously blocking them).


By passed Geo restricted content:

Most of the people usually subscribe to some VPN providers in order to fake their real location.
Usually those servers are hosted with a hosting provider and within the country where the content will be visible. (Ex: Accessing Netflix US content by using AWS US based servers).
With Hares, you will be able to detect those IPs and block them or maybe take other necessary steps as well (maybe a lawsuit ?).

Tracked Hosting
A Significant number of hosting providers are being tracked

And many more ...
Try it out
Hares.io API
Try out our service with our simple API

API Response Example:
                  
        {
            "company_name": "Amazon.com",
            "ip": "52.213.69.XXX",
            "ip_type": "ipv4",
            "last_update": "2017-08-19T16:06:31.622000+00:00",
            "provider": "AMAZON",
            "status": "success"
        }
                  
                
Code snippets:
- CURL example:
                  
        curl -X GET http://hares.io/check/[IP_ADDRESS]
                  
                
- NodeJS example:
                  
        var request = require("request");

        var options = {
          method: 'GET',
          url: 'http://hares.io/check/[IP_ADDRESS]',
          headers:
           { 'cache-control': 'no-cache' }
        };

        request(options, function (error, response, body) {
          if (error) throw new Error(error);

          console.log(body);
        });
                  
                
- PHP example:
                  
        <?php

        $curl = curl_init();

        curl_setopt_array($curl, array(
          CURLOPT_URL => "http://hares.io/check/[IP_ADDRESS]",
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => "",
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 30,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => "GET"
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);

        if ($err) {
          echo "cURL Error #:" . $err;
        } else {
          echo $response;
        }
                  
                
- Python example:
                  
        import requests

        url = "http://hares.io/check/[IP_ADDRESS]"

        response = requests.request("GET", url)

        print(response.json())
                  
                
- Ruby example:
                  
        require 'uri'
        require 'net/http'

        url = URI("http://hares.io/check/[IP_ADDRESS]")

        http = Net::HTTP.new(url.host, url.port)

        request = Net::HTTP::Get.new(url)
        request["cache-control"] = 'no-cache'

        response = http.request(request)
        puts response.read_body
                  
                
- Java example:
                  
        OkHttpClient client = new OkHttpClient();

        Request request = new Request.Builder()
          .url("http://hares.io/check/[IP_ADDRESS]")
          .get()
          .addHeader("cache-control", "no-cache")
          .build();

        Response response = client.newCall(request).execute();