Skip to content

Releases: sinnet3000/ip_exit_enum

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 22 Sep 15:12

What's Changed in v1.2.0

Much Faster & Synchronized Probing

  • Concurrent discovery: Probes all 15 HTTP and STUN endpoints in parallel across a 16-worker pool instead of crawling through them in separate, desynchronized phases.
  • Circuit breaker for dead endpoints: If an endpoint times out or drops packets on the first sample (e.g. IPv6 not enabled on your connection, or an ISP firewalling STUN UDP ports), the engine marks it dead and immediately skips it on subsequent samples. Drops total scan times from 15+ seconds down to under 1 second on partial-connectivity networks.

Cleaner, More Accurate Results

  • Killed STUN false positives: Removed a fallback that extracted IP addresses from STUN OTHER-ADDRESS attributes. In the STUN spec, OTHER-ADDRESS is an alternate server IP, not the client's public exit. It was polluting results with Google/Cloudflare server IPs.
  • HTTP response safety: Probes now strictly require an HTTP 200 status code and cap body reads at 64KB. This stops gateway 500 error pages, ISP captive portals, or proxy error text from leaking internal IPs into your scan.
  • Factual egress reporting: Replaced speculative claims like "load balancing across 2 IPs" with accurate, factual wording: "multiple egress mappings observed (2 IPs)".

Better CLI & Automation Support

  • Full CLI control: Added -samples (default: 3), -interval (default: 300ms), and -timeout (default: 5s) flags so you can tune probe depth and latency for slow or flaky uplinks.
  • Machine-readable JSON export: Added -json flag for CI pipelines and scripts. Dumps timestamp, duration, confidence, consensus, hit counts, percentages, and per-probe latency in structured JSON.
  • No more terminal flicker: Throttled live UI repaints to 100ms with proper cursor rewinds to prevent screen tearing on fast connections or over SSH.

Under the Hood

  • Single consolidated test suite: Completely rewrote the test suite into a single 150-line file that runs in 0.25s with 100% loopback coverage and zero external network calls.
  • Installer bug fix: Fixed binary extraction on Windows environments so the .exe installs properly.

Full Changelog: v1.1.1...v1.2.0

v1.1.1

Choose a tag to compare

@github-actions github-actions released this 05 Jun 18:40

Full Changelog: v1.1.0...v1.1.1

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 07 Mar 20:11

Full Changelog: v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 07 Mar 19:59

First Release

ip_exit_enum is a CLI tool that enumerates your public IPv4/IPv6 egress IPs by querying multiple independent HTTP and STUN services concurrently.

It detects non-deterministic outbound behavior — such as load-balanced NAT, carrier-grade NAT, or ISP routing policies — that single-request "what's my IP" tools miss.

Highlights

  • Multi-protocol discovery — queries both HTTP echo services and STUN servers
  • IPv4 & IPv6 — enumerates exit addresses for both IP versions
  • Confidence scoring — indicates likelihood of multiple outbound IPs
  • Live TUI — real-time progress with per-phase status
  • Verbose mode — -v flag for detailed per-service diagnostics
  • Single binary — no runtime dependencies

Pre-built Binaries

Platform Architecture Binary
Linux amd64 ip_exit_enum_linux_amd64
Linux arm64 ip_exit_enum_linux_arm64
Linux arm ip_exit_enum_linux_arm
macOS Apple Silicon ip_exit_enum_darwin_arm64
macOS Intel ip_exit_enum_darwin_amd64
Windows amd64 ip_exit_enum_windows_amd64.exe

Usage

# Basic
./ip_exit_enum

# Verbose output
./ip_exit_enum -v