VPNShield uses Third Party IP address information providers to detect if an IP address is a vpn or not
Overview
Detection modes
- VPNShield will cache the information gathered if the ip adress is an VPN or not.
- You can configure how long the information will be cached
- You can manually whitelist or blacklist IP adresses
- Parallel and Async checking minimize the time of the login request and the detection wether a connection is via a VPN or not
- Supported IP adress information provider (You need to create an account on their website). Most providers offer more requests when purchasing a plan
- ProxyCheck 1,000 Free daily requests
- IP-Api 45 Free request per minute
- IpHub 1,000 Free daily requests
- NoVPN 2,000 Free daily requests (From my experience many false positives)
- Choose between 3 VPN detection modes
- The result of the first provider will be used (For minimal request usage)
- All enabled providers will be checked. If at least your configured amount of providers detected the connection as a VPN, the connection is flagged.
- Check until the configured number of valid results has been reached (a result is invalid if for example the daily request limit is reached) and if then at least your configured amount of providers detected the connection as a VPN, the connection is flagged.(Read more at Detection modes)
- Take action if a VPN got detected
- Kick the player with a configured message
- Execute a one or more commands
- Notify online staff on the server
In the config is an order list, the providers are entered there and checked from top to bottom.
Mode 1
Uses the first valid result and blocks the player accordingly. A result is for example invalid if the provider is unreachable or the daily quato is reached
Mode 2
The IP is checked according to the order. If at least your configured amount of providers detected the connection as a VPN, the connection is flagged.
Example: You activated 3 providers via entereing them in the order list, created the API keys and entered that an IP gets flagged if 2 at least provider detect the IP as a VPN.
If the first and second provider detect the IP as an VPN the connection gets flagged and the third provider won't be checked
If only the second provider detects the IP as an VPN the connection doesn't get flagged and all 3 provider got checked.
Mode 3:
The ip is checked until the configured number of valid results has been reached (a result is invalid if for example the daily request limit is reached) and if then at least your configured amount of providers detected the connection as a VPN, the connection is blocked.
Example:
You activated 4 providers via entereing them in the order list, created the API keys, entered that an IP gets flagged if 2 at least provider detect the IP as a VPN and that you need at least 3 valid results.
It will now check the first 3 providers and if they all have valid results it wil check if at least 2 of them detect the IP as a VPN. If so the IP get's flagged. Only if one of the 3 checked providers return a invalid result it will check the fourth provider.
Requirements
Commands
- Java 17
Permissions
- /vpnshield whitelist/blacklist <IP>
- /vpnshield remove <IP> | Removes the IP from the cache/whitelist/blacklist
- /vpnshield list [site] | Shows the manually whitelisted/blacklisted entries. The site is optional
- /vpnshield check <IP> | Checks if the IP is detected as VPN or not
- /vpnshield rl
Config
- vpnshield.admin | Allows access to all commands
- vpnshield.notify | Notifies you if a player tried to join with a VPN
Spoiler: Config
Support
If you have any questions, found a bug or need help with the plugin create a ticket on my Discord Server
Terms and Conditions which you accept with buying the plugin:
► As a user of this plugin, you automatically agree to these terms (which are liable to change)
► You will not distribute or leak this plugin.
► No refunds, as such a digital item is not eligible for a refund as it was immediately accessible to you and you may have used it
► Not redistribute this plugin, share any part of the code or resell it.
► Not edit any of the plugin's code, decompile the plugin, or take some parts of it.
► You will not post my source code online or offline on any website or in the internet.
► Support is offered voluntarily and is not included in the price. Support can be discontinued at any time. I reserve the right to give support who I want and who I don't