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
IPRegexserializer — previously everyisServerIP()/getRegex()call and every range-file write crashed withSerializationException. - Rewrote IPv4 octet-range regex generation —
/9,/17,/25style blocks previously produced patterns that silently dropped most of the block (1,614 broken patterns eliminated from the shipped data).
- Added the missing
- Usable as a dependency —
range/*.jsondata 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]])returningMatchResult(provider, region, matchedPattern); unifiedisServerIPcontract (null/blank/non-IP-literal →false, never throws for bad input, never performs a DNS lookup). - Hermetic builds —
./gradlew testruns offline; live data regeneration moved to a dedicated./gradlew updateRangeFilestask 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