HTTP Input Service
A lightweight HTTP server that serves individual IPv4 addresses from cloud provider CIDR ranges.
Purpose
Provides a continuous stream of IPv4 addresses to network scanning tools. Each consumer (identified by IP) receives addresses in randomized order from cloud provider IP ranges.
Requirements
- Go 1.16+
- Cloud provider IP repository cloned at
./cloud-provider-ip-addresses/
Usage
# Build
go build -ldflags="-s -w" -o ip-feeder main.go
# Run
./ip-feeder
Server starts on http://localhost:8080
API
GET /
Returns a single IPv4 address per request.
curl http://localhost:8080
# Output: 13.248.118.1
Features
- Per-consumer state - Each client gets independent, deterministic sequence
- Memory efficient - Loads CIDR files lazily (~5-15MB RAM usage)
- Lazy expansion - IPs generated on-demand from CIDR notation
- Randomized order - Interleaves IPs from multiple ranges randomly
- IPv4 only - Filters IPv6, multicast, network/broadcast addresses
- Graceful shutdown - Ctrl+C drains connections cleanly
Expected Input Format
Scans ./cloud-provider-ip-addresses/ for .txt files containing IP ranges:
# Comments ignored
13.248.118.0/24
52.94.0.0/16
3.5.140.0/22
Shutdown
Press Ctrl+C for graceful shutdown with 10s timeout.