Skip to content

IPDynamic 26.1.2 — Range Lookup & Ban Preview

Latest

Choose a tag to compare

@SrCodexStudio SrCodexStudio released this 23 Jul 01:54
99a0864

IPDynamic 26.1.2 — Range Lookup & Ban Preview

Range bans are powerful, but a single 192.168.*.* can quietly sweep up dozens of legitimate players. This release lets you see exactly who a range would hit — before you ban it. /ipdy ip now understands wildcards and shows every account inside a range, grouped by country.


⭐ New: Wildcard Range Lookup

/ipdy ip <ip> now accepts trailing wildcards to inspect a whole range instead of a single address:

  • /ipdy ip 190.1.2.3 — single IP → exact lookup (GeoIP + VPN + accounts), unchanged
  • /ipdy ip 190.1.2.* — /24 range (256 IPs) → every account in that block
  • /ipdy ip 190.1.*.* — /16 range (65,536 IPs) → every account across the block
  • /ipdy ip 190.*.*.* — /8 range (16.7M IPs) → every account across the block

Each range lookup reports:

  • 📍 The exact range it covers (190.1.2.0 – 190.1.2.255)
  • 👥 How many accounts would be affected, across how many distinct IPs
  • 🌍 A country breakdown — e.g. United States: 8, Germany: 4, Chile: 2 — so you can spot when a range crosses regions and would catch unrelated players
  • 🖱️ A clickable, paginated account list — click a name fo its exact lookup

Why it matters: run the range as a lookup first (/ipdy ip 127.0.0.*), read who and what it touches, then decide whether to /ipdy ban. No more blind range bans that collateral-damage real players.

Tip: add a page number to browse long results → /ipdy ip 190.1.*.* 2


🔒 Security & Reliability

  • GeoIP over HTTPS — player IP addresses (PII) are no longer sent to the geolocation provider in cleartext. On by default, configurable.
  • Injection-hardened range queries — strict allow-list pattern validation, fully parameterized SQL with LIKE ... ESCAPE, an exact numeric range
    re-check, and a configurable result cap so a broad pattern can
  • Per-player command cooldown/ipdy ip and /ipdy check are rate-limited per user (console exempt).
  • Username sanitization — attacker-controlled names on offline-mode / Bedrock servers can no longer inject color or format codes into staff-facing output.
  • Safer imports/ipdy import validates that every ban d range, or CIDR before inserting it.
  • Graceful shutdown — coroutine teardown is time-bounded, so a stuck GeoIP request can never freeze /reload or server stop.

🔌 Integrations Now Live

  • Public API (IPDynamicAPI via Bukkit ServicesManager) and the PlaceholderAPI expansion (9 placeholders) are now registered and working. Placeholders are served from an async-warmed cache — zero blocking I/O on the main thread.

🧹 Under the Hood

  • Unified pagination, de-duplicated IP utilities, dead-code cleanup, and a shared coroutine error handler (commands no longer fail silently). Range lookups are covered by unit tests.

✅ Compatibility

  • Minecraft / Paper: 1.17.x – 26.2.x (Spigot supported)
  • Folia: supported
  • Bedrock (Floodgate / Geyser): supported
  • Java: 17 or higher
  • PlaceholderAPI: optional

IPDynamic loads on the new 26.x server line (26.1.x / 26.2.x) through Paper's forward compatibility — the same jar keeps working from 1.17 up to the latest release.


📦 Installation

  1. Download IPDynamic.jar below.
  2. Drop it into your server's plugins/ folder.
  3. Restart. Existing databases upgrade automatically — no data

Run /ipdy help in-game for the full command reference.