Skip to content

TLop503/ipcheq2

Repository files navigation

ipcheq2

Aggregate data from AbuseIPDB, VPNID, and VirusTotal to investigate IPs!

ipcheq2 homescreen with search bar

Features

  • Search results history!
  • Full IPv4 Support, with v6 coverage coming soon!
  • Extendable data-- bring your own sources to supplement ours!
  • Concise, distraction-free results without any marketing!
  • Linux and Windows both supported!
  • Choose between serving a Web UI, Headless API, or both!
    • Use -h for details on flags

IP Data Sources:

  • AbuseIPDB
  • VirusTotal (Optional)
  • iCloud Private Relays
  • Cyberghost
  • Express VPN
  • Mullvad VPN
  • Nord VPN
  • PIA
  • Proton VPN
  • Surfshark VPN
  • Tor Exit Nodes
  • Tunnelbear VPN

Want to see another source here? Open a PR with a file or an issue with a link!

Quick Start with Docker

Using Docker Run

# supply api keys
docker run -p 8080:8080 -e ABIPDBKEY=your_api_key_here -e VTKEY=your_api_key_here ghcr.io/tlop503/ipcheq2:latest <optional --mode webui|api|headless>

Using Docker Compose

  1. Create a docker-compose.yml file containing:
version: '3.8'
services:
  ipcheq2:
    image: ghcr.io/tlop503/ipcheq2:latest
    command: ["--mode", "webui|api|headless"] # optional
    ports:
      - "8080:8080"
    environment:
      - ABIPDBKEY=your_api_key_here
      - VTKEY=your_api_key_here # Optional
    restart: unless-stopped
  1. Run the application:
docker-compose up -d

Run locally

  1. Download exe or elf from the latest release. Download and extract the ip data as well and arrange to match tree: Alternatively clone the repo and build from source to skip arranging files (see "Local Development" below)
├── ipcheq2 or ipcheq2.exe
└── data
        ├── source1.txt
        ├── ...
        ├── update_icloud_relays.py
        └── upstream-icloud-list.hash
└── vpnid_config.txt
  1. Create a .env file with AbuseIPDB and VirusTotal API Keys (see .env.example) in the same directory, or set an enviornment variable.
  2. Update the icloud prefixes if desired with the bundled Python script.
    1. Note- this must be ran from wihtin the data/ directory!
  3. Optionally add IP lists to data/ and update the config file to match
  4. Run the executable! ipcheq2 will serve on localhost:8080.

Development Setup

Prerequisites

  • Go 1.23+
  • AbuseIPDB API key
  • VirusTotal API key (optional)

Local Development

  1. Clone the repository:
git clone https://github.com/tlop503/ipcheq2.git
cd ipcheq2
  1. Create a .env file:
cp .env.example .env
# Edit .env and add your ABIPDBKEY, VTKEY
# Alternatively, enviornment variables can be used.
  1. Run the application:
go run main.go
# or
go build . # inside project
./ipcheq2
  1. Open your browser to http://localhost:8080

Updating iCloud Private Relay prefixes

A script is provided to update the iCloud Private Relay prefixes within the repo. Before running it, make sure that you're inside the data/ directory.

Deployment

GitHub Container Registry

This project is automatically built and published to GitHub Container Registry via GitHub Actions.

Manual Build

docker build -t ipcheq2 ./dockerfiles
docker run -p 8080:8080 -e ABIPDBKEY=your_api_key_here VTKEY=your_api_key_here ipcheq2

Data Sources:
vpn_by_asn retrieved from https://github.com/X4BNet/lists_vpn. Copyright (c) 2024 X4B (Mathew Heard). Supplemented with https://github.com/NazgulCoder/IPLists?tab=readme-ov-file. Copyright (c) 2025 Nazgul.

About

Anonymous traffic classifying with AbuseIPDB and VirusTotal integrations

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors