Skip to content
/ ip-index Public
forked from Umkus/ip-index

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

License

Notifications You must be signed in to change notification settings

rune/ip-index

 
 

Repository files navigation

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 --pull always -d -it -p 80:4000 --rm ghcr.io/umkus/ipindex-node:latest

Alternatively for a more advanced usage with pre-configured nginx throttling and caching run this:

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

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

You will see the following data structure:

[
  {
    "start": "134744064",
    "end": "134744319",
    "subnet": "8.8.8.0/24",
    "asn": 15169,
    "hosting": true,
    "country": "US",
    "handle": "GOOGLE",
    "description": "Google",
    "subnetsNum": 956
  }
]

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:

Acknowledgments

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 98.8%
  • Dockerfile 1.2%