WaruiAntiVPN icon

WaruiAntiVPN -----

Protect your Minecraft server from VPNs and proxies.



Description
WaruiAntiVPN is a lightweight, highly configurable Spigot plugin designed to block players connecting through VPNs, proxies, data centers, Tor exit nodes, and other anonymizers. Ships with a rich set of built‑in detection services, and lets you easily add your own IP‑checking APIs.

Features
  • Multiple Detection Services: Out‑of‑the‑box support for ProxyCheck, IPAPI, Blackbox, Funkemunky, IPQuery, IPRisk, MITL, Negativity, SkyDB, RayZS, and more.

  • Custom Sources: Define your own HTTP‑based services to check any IP using JSON or HTML models.

  • Bypass & Blacklist: Whitelist specific IPs and blacklist unwanted ones.

  • Customizable Messages: Fully configurable kick/deny messages with color codes.

  • Extensible: Add or disable services, tweak parameters (risk score, days seen, tags) in your config.
Configuration (config.yml)
Code (YAML):
bypass-ips :
 - "45.66.55.21"

blacklist-ips
:
 - "10.0.0.5"
  - "203.0.113.42"

messages
:
  vpn-detected
:
   - "&cVPN или прокси запрещены."
  blacklisted-detected
:
   - "&cВаш IP в чёрном списке."

services
:
  proxycheck
:
    enabled
: false
    api-key
: "your-proxycheck-api-key"
    vpn
: true
    asn
: true
    risk
: true
    port
: true
    seen
: true
    days
: 7
    tag
: "WaruiAntiVPN"
  ipapi
:
    enabled
: true
    proxy-field
: true
    hosting-field
: true
  ip2
:
    enabled
: false
    model
: "JSON"
    key
: ""
    url
: "https://api.2ip.io/{IP}?token={KEY}"
    values
:
      fields
:
       - "asn.hosting"
      type
: boolean
  antivpn-io
:
    enabled
: false
    model
: "JSON"
    headers
:
      Authorization
: "Bearer KEY"
    url
: "https://connection.antivpn.io/api/check?ip={IP}"
    values
:
      fields
:
       - "VPN"
      type
: boolean
  antivpn-net
:
    enabled
: false
    model
: "JSON"
    key
: ""
    url
: "https://antivpn.net/api/v1/lookup?ip={IP}&key={KEY}&format=-json"
    values
:
      fields
:
       - "is_proxy"
      type
: boolean
  banproxy
:
    enabled
: false
    model
: "JSON"
    key
: ""
    url
: "https://banproxy.com/api/{IP}/{KEY}"
    values
:
      fields
:
       - "proxy"
        - "hosting"
      type
: boolean
  blackbox
:
    enabled
: true
    model
: "HTML"
    url
: "https://blackbox.ipinfo.app/lookup/{IP}"
    values
:
      fields
: { } # не используются
      type
: "Y" # сравниваем ответ body == "Y"
  freeipapi
:
    enabled
: true
    model
: "JSON"
    headers
: [ ] # можно указать Authorization: Bearer KEY
    url
: "https://freeipapi.com/api/json/{IP}"
    values
:
      fields
:
       - "isProxy"
      type
: boolean
  funkemunky
:
    enabled
: true
    model
: "JSON"
    url
: "https://funkemunky.cc/vpn?ip={IP}"
    key
: ""
    values
:
      fields
:
       - "proxy"
        - "data_center"
        - "vpn"
      type
: boolean
  getipintel
:
    enabled
: false
    model
: "JSON"
    key
: ""   # укажи здесь свой email, иначе блокировка
    url
: "https://check.getipintel.net/check.php?ip={IP}&contact={KEY}&flags=m&format=json"
    values
:
      fields
:
       - "result"
      type
: boolean
  greip
:
    enabled
: false
    model
: "JSON"
    headers
:
      Authorization
: "Bearer KEY"
    url
: "https://greipapi.com/lookup/ip/threats?ip={IP}"
    values
:
      fields
:
       - "data.threats.isProxy"
        - "data.threats.isRelay"
        - "data.threats.isTor"
        - "data.threats.isHosting"
      type
: boolean
  ip2location
:
    enabled
: false
    model
: "JSON"
    key
: ""
    url
: "https://api.ip2location.io/?ip={IP}&format=json{KEY}"
    values
:
      fields
:
       - "is_proxy"
        - "proxy.is_vpn"
        - "proxy.is_tor"
        - "proxy.is_public_proxy"
        - "proxy.is_web_proxy"
        - "proxy.is_web_crawler"
        - "proxy.is_residential_proxy"
        - "proxy.is_botnet"
        - "proxy.is_spammer"
        - "proxy.is_scanner"
        - "proxy.is_consumer_privacy_network"
        - "proxy.is_enterprise_private_network"
        - "proxy.is_data_center"
      type
: boolean
  ipapi_is
:
    enabled
: false
    model
: "JSON"
    key
: ""
    url
: "https://api.ipapi.is/?q={IP}&key={KEY}"
    values
:
      fields
:
       - "is_datacenter"
        - "is_tor"
        - "is_proxy"
        - "is_vpn"
        - "is_abuser"
        - "is_bogon"
      type
: boolean
  ipdetective
:
    enabled
: false
    model
: "JSON"
    headers
:
      x-api-key
: "KEY"
    url
: "https://api.ipdetective.io/ip/{IP}?info=true"
    values
:
      fields
:
       - "type"
      type
:
       - "vpn"
        - "datacenter"
        - "bot"
        - "proxy"
  ipgeolocation
:
    enabled
: false
    model
: "JSON"
    key
: ""
    url
: "https://api.ipgeolocation.io/ipgeo?apiKey={KEY}&ip={IP}"
    values
:
      fields
:
       - "security.is_tor"
        - "security.is_proxy"
        - "security.is_cloud_provider"
        - "security.is_known_attacker"
        - "security.is_anonymous"
      type
: boolean
  iphub
:
    enabled
: false
    model
: "JSON"
    headers
:
      X-Key
: "KEY"
    url
: "https://v2.api.iphub.info/ip/{IP}"
    values
:
      fields
:
       - "block"
      type
: boolean
  iphunter
:
    enabled
: false
    model
: "JSON"
    headers
:
      X-Key
: "KEY"
    url
: "https://www.iphunter.info:8082/v1/ip/{IP}"
    values
:
      fields
:
       - "data.block"
      type
: boolean
  ipqualityscore
:
    enabled
: false
    model
: "JSON"
    key
: ""
    url
: "https://ipqualityscore.com/api/json/ip/{KEY}/{IP}?strictness=0&allow_public_access_points=true"
    values
:
      fields
:
       - "proxy"
        - "vpn"
        - "tor"
        - "bot_status"
        - "recent_abuse"
      type
: boolean
  ipquery
:
    enabled
: true
    model
: "JSON"
    url
: "https://api.ipquery.io/{IP}?format=json"
    values
:
      fields
:
       - "risk.is_vpn"
        - "risk.is_tor"
        - "risk.is_datacenter"
        - "risk.is_proxy"
      type
: boolean
  iprisk
:
    enabled
: true
    model
: "JSON"
    url
: "https://api.iprisk.info/v1/{IP}"
    values
:
      fields
:
       - "vpn"
        - "data_center"
        - "open_proxy"
      type
: boolean
  ipstack
:
    enabled
: false
    model
: "JSON"
    key
: ""
    url
: "https://api.ipstack.com/{IP}?access_key={KEY}&security=1"
    values
:
      fields
:
       - "security.is_proxy"
        - "security.is_crawler"
        - "security.is_tor"
        - "security.hosting_facility"
      type
: boolean
  mitl
:
    enabled
: true
    model
: "JSON"
    url
: "https://antivpn.mitl.it/api/v1/checkip?ip={IP}"
    values
:
      fields
:
       - "isVPN"
      type
: boolean
  negativity
:
    enabled
: true #медленный отклик (примерно 1200 мс)
    model
: "JSON"
    url
: "https://api.negativity.fr/ip/{IP}"
    values
:
      fields
:
       - "proxy"
        - "vpn"
      type
: boolean
  protectcord
:
    enabled
: false
    model
: "JSON"
    key
: ""
    url
: "https://api.protectcord.com/checkip/{IP}?key={KEY}"
    values
:
      fields
:
       - "is_bogon"
        - "is_crawler"
        - "is_datacenter"
        - "is_tor"
        - "is_proxy"
        - "is_vpn"
        - "is_abuser"
      type
: boolean
  proxycheck_alt
:
    enabled
: false
    model
: "JSON"
    key
: ""
    url
: "https://proxycheck.io/v2/{IP}?vpn=3&key={KEY}"
    values
:
      fields
:
       - "%IP%.proxy"
        - "%IP%.vpn"
      type
: "yes"
  proxyradar
:
    enabled
: false
    model
: "JSON"
    key
: ""
    url
: "https://proxyradar.io/v1/check?key={KEY}&ip={IP}&format=json"
    values
:
      fields
:
       - "proxy"
      type
: boolean
  rayzs
:
    enabled
: true
    model
: "HTML"
    url
: "https://www.rayzs.de/provpn/api/proxy.php/?a={IP}"
    values
:
      fields
: { } # не используются
      type
: boolean # кик по любому не-null/не-"false"
  skydb
:
    enabled
: true #медленный отклик (примерно 1500 мс)
    model
: "JSON"
    url
: "http://ipcheck.skydb.de/getinfo?ip={IP}"
    values
:
      fields
:
       - "Hosting"
        - "Proxy"
        - "VPN"
        - "TOR"
      type
: boolean
  vpnapi
:
    enabled
: false
    model
: "JSON"
    key
: "" # оставь пустым, если без ключа (100 запросов бесплатно)
    url
: "https://vpnapi.io/api/{IP}?key={KEY}"
    values
:
      fields
:
       - "security.vpn"
        - "security.proxy"
        - "security.tor"
        - "security.relay"
      type
: boolean
  vpnapi_xyz
:
    enabled
: false
    model
: "JSON"
    key
: ""
    url
: "https://vpn-api.xyz/detector?key={KEY%}&host={IP}"
    values
:
      fields
:
       - "is_proxy"
      type
: boolean
  vpnblocker
:
    enabled
: false
    model
: "JSON"
    headers
:
      X-API-KEY
: "KEY"
    url
: "https://api.vpnblocker.net/v2/json/{IP}"
    values
:
      fields
:
       - "host-ip"
      type
: boolean
  zowi
:
    enabled
: false #криво работает
    model
: "JSON"
    url
: "https://central.zowi.gay/check/{IP}"
    values
:
      fields
:
       - "malicious"
      type
: boolean
How to Add Custom Sources
  1. Copy one of the existing service blocks in services:.

  2. Rename the block (e.g. mycustom).

  3. Configure:
    • enabled: true

    • model: "JSON" or "HTML"

    • url: Use {IP} placeholder for the player’s IP.

    • Optional headers or api-key / key fields.

    • Under values:, list the JSON fields to inspect, and set type: boolean (or "Y" for HTML).
Resource Information
Author:
----------
Total Downloads: 16
First Release: Jul 16, 2025
Last Update: Jul 16, 2025
Category: ---------------
All-Time Rating:
1 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings