ip-index icon indicating copy to clipboard operation
ip-index copied to clipboard

A fast offline IP lookup library. Detects VPN/hosting.

IP Index

A self-sufficient web-service providing info about an IP, particularly its ASN, country of origin and whether it's a hosting or not.

Project contains:

  • Data-center ASNs CSV list
  • Dockerized webservice (nginx and nodejs)
  • NPM library

Updates daily. False positives are possible, use at own risk.

Usage

For a quick and easy start and evaluation you can start the docker container directly:

docker run -d -it -p 80:4000 --rm --name ipindex ghcr.io/umkus/ipindex-node:latest 

For a more advanced usage with pre-configured nginx throttling and caching:

# git clone [email protected]:Umkus/ip-index.git
# cd ip-index
docker compose -f docker-compose.yml up -d

Now open this url in browser: http://localhost/?ip=8.8.8.8

You will see the following data structure:

[
  {
    "start": 134217728,
    "end": 142606335,
    "subnet": "8.0.0.0/9",
    "asn": 3356,
    "hosting": false,
    "handle": "LEVEL3",
    "description": "Level 3 Parent",
    "country": "US",
    "subnetsNum": 531
  },
  {
    "start": 134744064,
    "end": 134744319,
    "subnet": "8.8.8.0/24",
    "asn": 15169,
    "hosting": true,
    "handle": "GOOGLE",
    "description": "Google LLC",
    "country": "US",
    "subnetsNum": 76
  }
]

Why this exists

Most existing solutions to detect VPNs/Proxies provide HTTP APIs or binary databases on a subscription model. Downsides of the existing projects might be at least one of the following:

  • Not cost-effective
  • Not portable
  • Not fast enough

This solution is:

  • Free
  • Portable (Docker image)
  • Fast and efficient (caching, throttling reverse proxy)

Methods of validation

One of the target ASN IPs is checked against one or more of the known IP scoring services:

  • https://www.ipqualityscore.com/free-ip-lookup-proxy-vpn-test/lookup/1.1.1.1
  • https://www.ip2location.com/demo/1.1.1.1
  • https://scamalytics.com/ip/1.1.1.1

Acknowledgments