Skip to content
VPNDetection

Keep banned players off your game server

A ban holds only if the player can't come back on a new address. Look up each address as players connect, and turn away VPNs, proxies and hosting servers, or flag them for your moderators.

Unlimited lookups, no key needed · Sign up to try every field, no card
server.log
Example
  • Steve_42 joined
    203.0.113.24
    VPNNordVPNKicked
  • Lena_K joined
    198.51.100.7
    ISPHome broadbandJoined
  • xGhostx joined
    192.0.2.140
    HostingOVHcloudKicked
  • Marek joined
    203.0.113.91
    Residential ProxyFlagged for mods

What it stops

  • Ban evasion

    A banned player back on a VPN or a fresh proxy address. Checked on connect, the ban sticks.

    Caught byis_vpnis_resproxy
  • Alt accounts

    Second and third accounts made from VPN exits to farm rewards, vote twice or grief.

    Caught byis_vpnis_tor
  • Region locks

    Players on a VPN to reach servers, prices or events meant for another country.

    Caught byis_vpnlocation.country
  • Bots and cheat farms

    Bot accounts run from hosting servers and proxy pools, where real players connect from home and mobile networks.

    Caught byis_hostingis_dcproxy

The fields that decide it

The four a rule here reads most, each marked with the plan that answers it.

  • is_vpn
    A commercial VPN. A paid plan names which one.Unlimited
  • is_tor
    A Tor node, from the public list, rebuilt daily.Unlimited
  • is_hosting
    A hosting server, where bots and alt farms run.Paid plans
  • is_resproxy
    Someone's home connection resold as a proxy.Paid plans

Where to check

  1. 01

    On connect

    Look up the address before the player spawns, so a VPN never reaches the world. The Minecraft plugin does it on the server or its proxy; for any other game, call the API from your join handler and keep the answer for the session.

  2. 02

    At sign-up

    Check new accounts on your website, launcher or forum, where alt accounts start. A banned player then can't open a fresh account through a VPN or a rented server.

  3. 03

    In reports

    Show moderators what an address is when they review a player: the VPN by name, or a residential proxy with when it was last seen. A ban then rests on the address as well as the behavior.

Start free, then add every field

The same rule runs with no key and with one. Without a key the paid fields are left out of the answer, so the second check waits for your upgrade.

  1. 1

    Call it with no key

    Unlimited

    The snippet runs as it is: the VPN, Tor and relay flags, the location and the network, with no daily or monthly cap.

  2. 2

    Sign up for a key

    No card

    Your account's first 100 lookups each day answer every field, so you can try the paid half of the rule on real traffic.

  3. 3

    Upgrade for every lookup

    From $19 a month

    Every paid plan answers every field on every lookup, proxies, hosting and the operator behind each flag, and up to 1,000 addresses a batch.

import { VPNDetection } from "vpndetection";
// No key needed. With one, every field answers.
const client = new VPNDetection({ apiKey: process.env.VPNDETECTION_API_KEY });
export async function onPlayerJoin(player) {
const r = await client.lookup(player.ip);
if (r.isVpn || r.isTor) {
return kick(player, "VPNs aren't allowed on this server");
}
// Proxies and hosting answer on a paid plan.
if (r.isResproxy || (r.isHosting && !r.isRelay)) {
alertModerators(player, r);
}
}
join.mjsnpm install vpndetection
On this page

Will it kick players on mobile data or a home connection?

No. Home broadband and mobile carrier addresses aren't flagged unless the address is in a proxy pool, which a paid plan's is_resproxy and is_mobproxy say, with the last day each was seen.

00 · Unlimited

Unlimited lookups, no sign-up.

Paste it into a terminal. Any address answers its VPN, Tor and relay flags, where it is and which network announces it, with no daily or monthly cap.

curl "https://api.vpndetection.io/146.70.116.130"
{
"ip": "146.70.116.130",
"is_vpn": true,
"is_relay": false,
"is_tor": false,
"location": {
"country": "AT", ...
},
"asn": { "asn": 9009, ... }
}
01 · Sign up

Try every field, free.

Your first 100 lookups each day answer every field, the evidence behind each flag included.
The rest answer as Unlimited, with no cap.
No card and no sales call: the key is issued on signup.
A paid plan answers every field on every lookup.