API de detección de VPN

Detectá VPN por IP: consultá cualquier dirección IPv4 o IPv6 contra redes VPN conocidas, exits de Tor, relays de privacidad y rangos de hosting/datacenter, y obtené el país en la misma llamada. Flags simples con límites documentados para que los scorees vos, no un veredicto de caja negra.

Registrarse Leer la documentación

Free: 1.000 req/día · HTTPS · uso comercial OK

Ejemplo

Consultá una IP y quedate con el país, la red y los traits usando jq:

GET /v0/ip/{ip}
$ curl -s https://api.networkdatalabs.com/v0/ip/8.8.8.8 \
    -H "Authorization: Bearer YOUR_API_KEY" \
    | jq '{country_code: .location.country_code, asn: .network.asn, as_org: .network.as_org, traits}'

{
  "country_code": "US",
  "asn": 15169,
  "as_org": "Google LLC",
  "traits": {
    "is_anycast": true,
    "is_hosting": true,
    "is_mobile": false,
    "is_satellite": false,
    "is_bogon": false,
    "is_proxy": false,
    "is_vpn": false,
    "is_tor": false,
    "is_relay": false
  }
}

8.8.8.8 es un resolver DNS público en una red de hosting, así que is_hosting e is_anycast dan true, mientras que is_vpn, is_tor e is_relay dan false. Una IP de una red VPN conocida devuelve "is_vpn": true, y un exit de Tor, "is_tor": true. ¿Tenés una lista? POST /v0/bulk acepta hasta 100 IPs por request con el mismo schema; una IP inválida aparece en errors sin romper el lote, y cada IP cuenta para la cuota diaria.

Campos de la respuesta

  • is_vpn — la IP pertenece a una red VPN conocida, incluidos los proveedores comerciales de VPN grandes.
  • is_tor — la IP es un exit node de Tor actual.
  • is_relay — la IP es una salida de un relay de privacidad. Va separado de is_vpn, para que no trates por error a usuarios de un relay de privacidad como si usaran una VPN.
  • is_hosting — detección de hosting/datacenter: redes de cloud, hosting y CDN desde donde casi no navegan usuarios reales.
  • País y red — country_code, accuracy_radius_km, confidence, ASN y organización del AS, para comparar el país de la IP con el de facturación o de la cuenta.

Es el mismo lookup GET /v0/ip/{ip} de nuestra API de geolocalización IP: una sola llamada devuelve geo, red y traits juntos.

Para qué lo usan los equipos

  • Riesgo en signup, login y pagos — tomar cada flag como un input de un score (por ejemplo, pesar is_tor más que is_vpn e is_hosting, y sumar puntos si el país de la IP no coincide con el de la tarjeta o la facturación) y sumar fricción (verificación por email o SMS, revisión manual) por encima de un umbral
  • Abuso de promos y trials — limitar trials gratis, cupones y premios por referidos pedidos desde redes VPN conocidas, exits de Tor e IPs de datacenter
  • Contenido con restricción geográfica — marcar tráfico de redes VPN conocidas y Tor en chequeos de licencias y regiones, junto con el country_code de la API de IP a país

Lo que no hace

  • Puede marcar servidores que no son VPN. Se marcan redes enteras de proveedores de hosting muy usados para VPN, así que otros servidores ahí también salen marcados. is_vpn no incluye las grandes nubes públicas; para eso está is_hosting.
  • Las redes nuevas pueden tardar en aparecer. Un rango de VPN o un exit de Tor recién aparecido puede dar false hasta que lo incorporemos.

Usá los flags como señales, no como veredictos: pedí una verificación extra en vez de bloquear por un solo flag.

Preguntas frecuentes

¿Qué diferencia hay entre is_vpn e is_relay?

is_relay marca IPs de salida de relays de privacidad. Un relay de privacidad oculta la IP del usuario para navegar con privacidad y suele ser tráfico legítimo de consumidores, así que va separado de VPN: esas IPs nunca salen como is_vpn, y podés tratarlas con más tolerancia que a una VPN.

¿Soporta IPv6?

Sí. GET /v0/ip/{ip} y POST /v0/bulk aceptan direcciones IPv4 e IPv6 (por ejemplo 2001:4860:4860::8888). Una IP mal formada devuelve 400 INVALID_IP.

¿Hay plan gratis?

Sí: 1.000 requests por día UTC con el schema completo, uso comercial OK. En bulk, cada IP cuenta como un request para la cuota diaria.

Empezá a construir

Creá una cuenta gratis, o leé el quickstart y la referencia completa en la documentación.

Registrarse Leer la documentación

APIs relacionadas