Skip to content

v1.0.1 — Initial release: IPv6 support, correctness fixes, jar-bundled data

Latest

Choose a tag to compare

@developerlee79 developerlee79 released this 06 Jul 13:08

Initial release of the Cloud Server IP Range Utility. (Supersedes the briefly-published v1.0.0 tag, which predated the maven-publish configuration required by JitPack.)

Highlights

  • Full IPv4 + IPv6 support — IPv6 CIDR blocks (including non-16-bit-aligned prefixes) are converted to exact-match regexes; IPv6 ranges collected from Amazon, CloudFlare, Google, Microsoft, and DigitalOcean.
  • Critical correctness fixes
    • Added the missing IPRegex serializer — previously every isServerIP() / getRegex() call and every range-file write crashed with SerializationException.
    • Rewrote IPv4 octet-range regex generation — /9, /17, /25 style blocks previously produced patterns that silently dropped most of the block (1,614 broken patterns eliminated from the shipped data).
  • Usable as a dependencyrange/*.json data is bundled inside the jar with a classpath fallback, so the library no longer requires a repo checkout with a matching working directory.
  • Safer public API — new findMatch(ip[, provider[, region]]) returning MatchResult(provider, region, matchedPattern); unified isServerIP contract (null/blank/non-IP-literal → false, never throws for bad input, never performs a DNS lookup).
  • Hermetic builds./gradlew test runs offline; live data regeneration moved to a dedicated ./gradlew updateRangeFiles task with per-provider failure aggregation.
  • Hardened ingestion — Microsoft download file name validation (path traversal guard), DigitalOcean malformed-CSV tolerance, thread-safe caches and HTTP client.
  • Fresh data — all 7 providers regenerated (first successful regeneration since Nov 2023).

Supported providers

Amazon (AWS), Microsoft (Azure), Google (GCP), CloudFlare, DigitalOcean, Oracle (OCI, IPv4-only feed), Tencent (IPv4-only feed).

Installation

Via JitPack:

repositories { maven("https://jitpack.io") }
dependencies { implementation("com.github.developerlee79:server-ip-ranges:v1.0.1") }

See the README for full usage.

Full Changelog: #5