Identifica el proveedor de VPN detrás de una IP a partir de su propia lista de servidores
Identifica el proveedor de VPN detrás de una IP comparándola con la lista de servidores que publica el proveedor. En ninguna IP que consultamos el WHOIS mencionaba una VPN.

Descargamos la lista de relays de Mullvad a las 05:22 UTC del 13 de octubre de 2026. Contenía 566 relays, 553 servidores WireGuard y 13 bridges, y Mullvad marca solo 124 de ellos como hardware propio. Uno de los propios, 185.213.155.73 en Fráncfort, está registrado en el WHOIS a nombre de "31173 Services Germany", no tiene DNS inverso y lo anuncia el AS39351. Nada en su registro de red dice "Mullvad". Solo la lista lo dice.
Ese es todo el truco detrás de cualquier herramienta de "a qué VPN pertenece esta IP", y casi ninguna lo cuenta. A continuación enumeramos los endpoints donde los proveedores publican sus servidores, damos un comparador en Python probado y mostramos lo que devolvió nuestra API para los servidores listados por proveedores que consultamos, además de controles, fallos incluidos. Termina con una tabla de políticas. Para la parte de detección, es decir, cómo se detecta una VPN en primer lugar, lee cómo funciona la detección de VPN, señal por señal.

¿Se puede saber a qué VPN pertenece una dirección IP?
Sí, cuando la IP está en una lista que publica el proveedor. Una aplicación de VPN necesita saber dónde están sus servidores antes de poder conectarse, así que los proveedores sirven esa lista a sus aplicaciones, y la mayoría de esas listas son públicas. Si la dirección no está en ninguna lista, normalmente aún puedes saber que es una VPN por los sondeos y las señales de hosting, pero no de quién.
Aquí está 185.213.155.73 rastreada de principio a fin. La lista de Mullvad, en api.mullvad.net/www/relays/all/, tiene una fila para ella con hostname "de-fra-wg-001", type "wireguard", city_name "Frankfurt", owned true y provider "31173". Ese último campo es la empresa de hosting, y aquí es la propia de Mullvad.
El registro cuenta otra historia. El registro RDAP de RIPE, que abrimos a las 05:28 UTC, nombra el rango NET-31173-185-213-155-0-24 y al titular "31173 Services Germany". El objeto route del whois de RIPE da como origen el AS39351. Ejecutamos dig -x 185.213.155.73 y no obtuvimos ninguna respuesta.
Después la consultamos en nuestra API a las 05:27 UTC. Esta es una copia recortada, con los valores sin editar:
{
"ip": "185.213.155.73",
"asn": {
"asn": 39351,
"org": "ESAB-AS - 31173 Services AB"
},
"whois": {
"org": "31173 Services AB infrastructure in Frankfurt, DE.",
"netname": "NET-31173-185-213-155-0-24",
"has_vpn_keywords": false
},
"detection": {
"is_vpn": true,
"vpn_provider": "Mullvad",
"vpn_confidence": 95
},
"scoring": {
"fraud_score": 100,
"recommended_action": "block",
"detection_methods": ["known_vpn_server", "wireguard_open", "datacenter_with_vpn_proxy", "no_ptr_datacenter"]
}
}
Fíjate en whois.has_vpn_keywords. Es false, en un servidor de Mullvad, y fue false en todas las direcciones que consultamos. El texto del WHOIS nunca menciona una VPN. El nombre "Mullvad" vino de la coincidencia con la lista, y vpn_confidence 95 es el valor que nuestra API da a esa vía. El bloqueo vino de la evidencia: una entrada en la lista de un proveedor etiquetada como WireGuard, en una dirección de hosting.
Por qué el WHOIS, el DNS inverso y el ASN nombran al hosting y no a la VPN
La mayoría de los servidores VPN funcionan en máquinas alquiladas, así que el registro de red describe al arrendador. En nuestra muestra, M247 (AS9009) aloja servidores listados de NordVPN, PIA, AirVPN, IVPN y FastestVPN. Datacamp (AS212238) aloja un servidor de Mullvad en Nueva York y un servidor de IVPN en Buenos Aires. Una regla que diga "M247 significa VPN" es una suposición sobre una empresa de hosting. La lista del proveedor es evidencia sobre un servidor.
Mullvad lo demuestra por nosotros. Su lista marca cada relay con owned true o false y nombra al hosting en provider. El 13 de octubre, 124 de sus 566 relays eran owned: true, y los hostings más comunes eran DataPacket (128 relays), Tzulo (127) y M247 (98). Consultamos dos relays alquilados de Mullvad a las 05:33 UTC:
| Relay de Mullvad, según su lista | Hosting en la lista | Nuestro asn.org | vpn_provider, vpn_confidence | Puntuación, acción |
|---|---|---|---|---|
| 149.22.83.2, ar-bue-wg-001, owned false | DataPacket | CDNEXT - Datacamp Limited | Mullvad, 95 | 99, block |
| 91.90.123.2, be-bru-wg-101, owned false | M247 | M247 - M247 Europe SRL | Mullvad, 95 | 100, block |
Una comprobación del ASN de cualquiera de los dos dice "empresa de hosting". La lista dice Mullvad. El relay de Nueva York us-nyc-wg-301, 143.244.47.65, cuenta la misma historia sobre Datacamp.
El DNS inverso es todavía más débil. Ejecutamos dig -x sobre 20 de las direcciones listadas por proveedores a las 05:28 UTC. Once no devolvieron nada, y ninguna de las otras nueve nombraba una marca de VPN:
| IP | Listada por | Lo que devolvió dig -x |
|---|---|---|
| 143.244.47.65 | Mullvad | unn-143-244-47-65.datapacket.com |
| 149.22.83.100 | IVPN | unn-149-22-83-100.datapacket.com |
| 198.44.137.44 | Windscribe | static-198-44-137-44.cust.tzulo.com |
| 204.13.164.252 | Riseup | leapgwv6.bitmask.net |
| 185.244.212.69 | IVPN | 185.244.212.69.adsl.inet-telecom.org |
| 185.213.155.73 | Mullvad | sin PTR |
El nombre de Riseup apunta al software de VPN, LEAP y Bitmask, no a una marca. El nombre de IVPN en Viena dice "adsl", que parece una conexión doméstica, en un servidor que IVPN lista. Ese es el peligro de leer demasiado en un PTR.
El ASN nombra a la VPN solo cuando el proveedor opera su propia red, como hace Mullvad con el AS39351 y Riseup con el AS16652. Si quieres el contexto, aquí está qué es un ASN y a quién nombra. Nuestra API mantiene una tabla corta de redes operadas por proveedores de VPN, con el AS39351 de Mullvad en ella, y esa tabla es una de las cuatro vías de identificación que vemos más abajo.
Dónde publican los proveedores de VPN las IPs de sus servidores
Estas son las listas que leen las propias aplicaciones de los proveedores. "Descargada hoy" significa que nuestra red obtuvo una respuesta 200 el 13 de octubre de 2026; "no accesible hoy" significa que la solicitud falló desde nuestra red tras dos intentos.
| Proveedor | Lista que lee la aplicación | Dónde está la IP | Estado el 13 de octubre de 2026 |
|---|---|---|---|
| Mullvad | api.mullvad.net/www/relays/all/ | ipv4_addr_in, ipv6_addr_in | Descargada hoy, 05:22 UTC: 566 relays, 124 propios |
| AirVPN | airvpn.org/api/status/ | ip_v4_in1 a ip_v4_in4 | Descargada hoy, 05:22 UTC: 250 servidores |
| IVPN | api.ivpn.net/v5/servers.json | Entradas host de WireGuard y OpenVPN | Descargada hoy, 05:22 UTC: 89 hosts WireGuard en 59 ubicaciones |
| PrivadoVPN | privadovpn.com/apps/servers_export.json | ip | Descargada hoy, 05:22 UTC: 167 servidores |
| Riseup | api.black.riseup.net/3/config/eip-service.json, encontrada a través de riseup.net/provider.json | ip_address | Descargada hoy, 05:23 UTC: 21 gateways |
| NordVPN | api.nordvpn.com/v2/servers, según el actualizador de NordVPN de gluetun | station | No accesible hoy (tiempo de espera agotado) |
| Surfshark | api.surfshark.com/v4/server/clusters, según el actualizador de Surfshark de gluetun | Solo nombres de host | No accesible hoy (error TLS y luego tiempo de espera agotado) |
| Private Internet Access | serverlist.piaservers.net/vpninfo/servers/v6, según el propio get_region.sh de PIA | IPs de servidores por región | No accesible hoy (error TLS) |
| Windscribe | assets.windscribe.com/serverlist/mob-v2/1/, según el actualizador de Windscribe de gluetun | ip, ip2, ip3 | No accesible hoy (tiempo de espera agotado) |
Las cuatro a las que no pudimos acceder son endpoints reales. Los conocemos por los clientes oficiales o de código abierto de los proveedores, y el código de NordVPN de gluetun incluso comenta que el campo station "is, it seems, the entry IP address" (es, al parecer, la dirección IP de entrada). Sus APIs bloquean las solicitudes que vienen de centros de datos, que es donde corre nuestro escáner, y el 13 de octubre tampoco respondieron a la red que usamos para este artículo.
Así que nuestra API nombra las VPN a partir de las propias listas de servidores de los proveedores más una lista pública de terceros. Para NordVPN, PIA y Windscribe, nuestro escáner recurre a copias guardadas de las respuestas de sus APIs, con fecha del 4 de octubre de 2026. No tenemos ninguna copia de Surfshark. La lista de terceros es gluetun-servers, los datos de servidores mantenidos por la comunidad detrás de gluetun, un contenedor de cliente VPN de código abierto. Cargamos sus archivos para más de 20 proveedores, y es nuestra única fuente para FastestVPN. Los cuatro de sus archivos que descargamos hoy, para ExpressVPN, FastestVPN, NordVPN y PIA, llevan todos una marca de tiempo del 6 de agosto de 2026.
Identifica tú mismo un proveedor de VPN por IP: Mullvad y NordVPN
Descarga la lista del proveedor y busca una coincidencia exacta con la dirección. Mullvad es el caso fácil porque su lista respondió cada vez que la pedimos. Este es el script que ejecutamos a las 05:29 UTC del 13 de octubre de 2026, con Python 3.9.6 y solo la biblioteca estándar:
"""Check IPs against Mullvad's public relay list. Standard library only."""
import ipaddress, json, sys, urllib.request
URL = "https://api.mullvad.net/www/relays/all/"
def load_relays(url=URL):
with urllib.request.urlopen(url, timeout=30) as resp:
relays = json.load(resp)
index = {}
for r in relays:
for key in ("ipv4_addr_in", "ipv6_addr_in"):
if r.get(key):
index[ipaddress.ip_address(r[key])] = r
return relays, index
def match(index, ip):
try:
addr = ipaddress.ip_address(ip.strip())
except ValueError:
return None
if addr.version == 6 and addr.ipv4_mapped:
addr = addr.ipv4_mapped # ::ffff:141.98.252.67 becomes 141.98.252.67
return index.get(addr)
if __name__ == "__main__":
try:
relays, index = load_relays()
except Exception as e:
sys.exit(f"could not load Mullvad's list: {e}")
print(f"{len(relays)} relays, {len(index)} addresses")
ips = sys.argv[1:] or [line for line in sys.stdin if line.strip()]
for ip in ips:
r = match(index, ip)
if r:
result = f"{r['hostname']} {r['type']} {r['city_name']} owned={r['owned']} host={r['provider']}"
else:
result = "not on Mullvad's list"
print(f"{ip.strip():22} {result}")
Le pasamos siete entradas por la línea de comandos, y imprimió:
566 relays, 1122 addresses
185.213.155.73 de-fra-wg-001 wireguard Frankfurt owned=True host=31173
143.244.47.65 us-nyc-wg-301 wireguard New York, NY owned=False host=DataPacket
45.83.220.68 se-mma-wg-101 wireguard Malmö owned=True host=31173
45.83.220.7 not on Mullvad's list
::ffff:141.98.252.67 gb-lon-wg-001 wireguard London owned=True host=31173
102.129.235.17 not on Mullvad's list
not-an-ip not on Mullvad's list
También le pasamos por stdin tres líneas con líneas en blanco y espacios de relleno, como harías al darle una columna de un log, y asoció 45.83.220.70 con se-mma-wg-103. Apuntado a una URL que devuelve 404, imprimió "could not load Mullvad's list: HTTP Error 404: Not Found" y terminó con el código de salida 1. Dos salvedades: una entrada no válida se informa como que no está en la lista en lugar de como un error, y los 13 bridges también coinciden, así que lee la columna type.
Cómo detectar NordVPN del mismo modo. La lista de NordVPN pone la IP de cada servidor en un campo station, y nuestra copia guardada del 4 de octubre tiene una por servidor. El endpoint en vivo agotó el tiempo de espera desde nuestra red el 13 de octubre, dos veces, así que no publicamos código para NordVPN que no pudimos ejecutar. Ejecuta la misma lógica de coincidencia exacta desde una red a la que NordVPN responda.
Para una dirección cada vez, puedes comprobar cualquier IP en busca de una VPN y su proveedor; la herramienta devuelve el nombre en detection.vpn_provider. En código, es una sola solicitud con la IP en la ruta:
curl https://api.geoiphub.com/v1/lookup/185.213.155.73 \
-H "x-api-key: YOUR_API_KEY"
vpn_provider está en el plan gratuito, que incluye todos los campos de datos con 1.500 consultas al día. Si basas algo en el nombre, compara su comienzo, no la cadena completa: nuestra API devolvió "Mullvad" para los servidores listados y "Mullvad (31173 Services)" para la vía del ASN. Este es el fragmento que ejecutamos a las 05:34 UTC, sin clave:
import json, sys, urllib.request
def lookup(ip, key=None):
# A custom User-Agent: our API answered Python's default one with a 403.
headers = {"User-Agent": "vpn-provider-check/1.0"}
if key:
headers["x-api-key"] = key
req = urllib.request.Request(f"https://api.geoiphub.com/v1/lookup/{ip}", headers=headers)
with urllib.request.urlopen(req, timeout=10) as resp:
return json.load(resp)
for ip in sys.argv[1:]:
data = lookup(ip)
provider = data["detection"]["vpn_provider"]
named = provider != "none"
is_mullvad = provider.startswith("Mullvad") # "Mullvad" or "Mullvad (31173 Services)"
print(ip, repr(provider), "named" if named else "unnamed",
"mullvad" if is_mullvad else "-", "is_vpn" if data["detection"]["is_vpn"] else "not_vpn",
data["scoring"]["recommended_action"])
185.213.155.73 'Mullvad' named mullvad is_vpn block
45.83.220.7 'Mullvad (31173 Services)' named mullvad is_vpn review
102.129.235.17 'none' unnamed - is_vpn block
La tercera línea es la que debes tener en cuenta al diseñar: sin nombre, sigue siendo una VPN y sigue siendo un bloqueo.
Si te haces la otra pregunta, si tu propia conexión aparece como NordVPN, abre mira la IP que muestra tu conexión mientras estás conectado.
Lo que devolvió nuestra API para IPs listadas por proveedores
Los servidores listados de todos los proveedores que muestreamos volvieron con nombre, y vpn_confidence muestra cuál de las cuatro vías los nombró. En una fila con nombre, el valor corresponde a la vía:
| vpn_confidence | Vía que nombró la IP |
|---|---|
| 95 | La propia lista de servidores del proveedor |
| 90 | Un nombre de host de servidor de los archivos de gluetun, que resolvimos a esta IP |
| 85 | Una tabla corta de redes operadas por un proveedor de VPN |
| 80 | La lista pública de servidores de gluetun |
Hicimos estas consultas entre las 05:27 y las 05:28 UTC del 13 de octubre de 2026. La última columna muestra solo los sondeos de handshake de VPN que respondieron; dejamos el resto de detection_methods fuera de la tabla.
| IP | Proveedor y servidor, según su lista | Dónde encontramos la IP | vpn_provider | vpn_confidence | Puntuación, acción | Sondeo que respondió |
|---|---|---|---|---|---|---|
| 185.213.155.73 | Mullvad, de-fra-wg-001 | Mullvad, descargada hoy | Mullvad | 95 | 100, block | wireguard_open |
| 143.244.47.65 | Mullvad, us-nyc-wg-301, owned false | Mullvad, descargada hoy | Mullvad | 95 | 99, block | wireguard_open |
| 82.102.19.137 | NordVPN, be148 | Copia de NordVPN del 4 oct; también en gluetun | NordVPN | 80 | 99, block | wireguard_open |
| 173.239.247.129 | PIA, Vietnam | Copia de PIA del 4 oct; también en gluetun | PIA | 80 | 51, step_up | ninguno |
| 198.44.137.44 | Windscribe, Dallas, us-central-117 | Copia de Windscribe del 4 oct | Windscribe | 95 | 100, block | ipsec_open, wireguard_open |
| 185.156.175.170 | AirVPN, Achernar, Zúrich | AirVPN, descargada hoy | AirVPN | 95 | 99, block | wireguard_open |
| 149.22.83.100 | IVPN, ar1.wg, Buenos Aires | IVPN, descargada hoy | IVPN | 95 | 99, block | wireguard_open |
| 85.12.5.56 | PrivadoVPN, hkg-006 | PrivadoVPN, descargada hoy | PrivadoVPN | 90 | 36, review | ninguno |
| 204.13.164.252 | Riseup, vpn01-sea | Riseup, descargada hoy | Riseup | 95 | 48, review | ninguno |
| 31.171.152.205 | ExpressVPN, Albania | Archivo de gluetun del 6 ago | ExpressVPN | 80 | 51, step_up | ninguno |
| 46.102.153.134 | FastestVPN, au-stream, Sídney | Archivo de gluetun del 6 ago | FastestVPN | 90 | 99, block | wireguard_open |
| 45.83.220.7 | No está en la lista de Mullvad | Ninguna | Mullvad (31173 Services) | 85 | 46, review | ninguno |
Tres filas merecen un comentario. Los servidores de NordVPN y PIA están en nuestras copias guardadas, pero volvieron con 80, el valor de gluetun, y ambos están en los archivos de gluetun. El servidor de PrivadoVPN está hoy en la propia exportación de PrivadoVPN, pero volvió con 90, no con 95: su nombre vino de resolver su nombre de host, hkg-006.vpn.privado.io, que también figura en el archivo de PrivadoVPN de gluetun. Deduce la vía a partir de vpn_confidence, no de la lista donde encontraste la IP. ExpressVPN no es uno de los nueve proveedores cuyas propias listas descargamos. Una dirección de ExpressVPN listada en gluetun volvió con nombre, lo que demuestra que la vía funciona, no que cubramos ExpressVPN.
La última fila es la vía del ASN. 45.83.220.7 no está en la lista de Mullvad; la lista de hoy tiene .68, .69 y .70 en ese /24, no .7. Tiene nombre porque su red, el AS39351, pertenece al operador de Mullvad:
{
"ip": "45.83.220.7",
"asn": {
"asn": 39351,
"org": "ESAB-AS - 31173 Services AB"
},
"whois": {
"org": "31173 Services AB infrastructure in Malmo, SE.",
"netname": "NET-31173-45-83-220-0-24",
"has_vpn_keywords": false
},
"detection": {
"is_vpn": true,
"vpn_provider": "Mullvad (31173 Services)",
"vpn_confidence": 85
},
"scoring": {
"fraud_score": 46,
"recommended_action": "review",
"detection_methods": ["known_vpn_server", "datacenter_ip"]
}
}
Observa que known_vpn_server también se activa aquí. Ese nombre de método no significa "en la lista de un proveedor"; en esta fila viene de la tabla de redes. Lee vpn_confidence para saber la vía, y solo en filas donde vpn_provider no sea "none".
Por qué algunas IPs de VPN vuelven como "none"
"none" significa que la IP no está en ninguna de las listas que tenemos en este momento. No significa que la IP no sea una VPN, ni que una dirección vecina de un proveedor esté limpia.
El servidor pl128 de NordVPN, 194.99.105.99, está en la respuesta de NordVPN que guardamos el 4 de octubre, marcado como en línea. Hoy devolvió vpn_provider "none", pero is_vpn true, puntuación 98 y block, con ipsec_open entre sus métodos. Lo detectó su handshake IPsec; nada lo nombró. El servidor de PIA en Liechtenstein, 91.90.122.25, está en la lista de PIA del mismo día. Hoy devolvió is_vpn false y una puntuación de 64, step_up, solo por señales de listas de bloqueo y de hosting.
Ninguna de esas dos direcciones está en los archivos de gluetun, mientras que las filas con nombre de NordVPN y PIA de arriba sí lo están. Hoy no pudimos volver a descargar la API de NordVPN ni la de PIA, así que cualquiera de los dos servidores puede haberse retirado o cambiado de dirección desde el 4 de octubre. Lo que sí podemos decir es más limitado y seguro: un servidor solo tiene nombre cuando está en una lista que tenemos actualmente.
También tenemos un fallo con un proveedor cuya lista sí descargamos hoy. 91.90.123.29 está en el mismo /24 que el relay listado de Mullvad 91.90.123.2, pero no está en la lista de Mullvad. La página de proveedores de IPinfo la mostraba como su IP de ejemplo de Mullvad el 13 de octubre. Nuestra API devolvió is_vpn false, vpn_provider "none", puntuación 12, allow. Puede ser una IP de salida o una dirección no listada junto a una listada; eso es un indicio, no una prueba. En cualquier caso, una coincidencia con una lista cubre la dirección listada y nada a su alrededor.
El control documentado muestra el caso sin nombre pero detectado. 102.129.235.17, en el AS834 IPXO, devolvió is_vpn true, vpn_provider "none", puntuación 92, block, con known_vpn_server, openvpn_open e ipsec_open. Un servidor sin nombre se detecta igualmente cuando completa un handshake de OpenVPN o IPsec con nuestro escáner; el artículo principal enlazado arriba explica los sondeos.
Razones habituales por las que una IP de VPN queda sin nombre:
- No hay lista pública. Algunos proveedores no publican ninguna, y una VPN autoalojada nunca aparece en una.
- Lista inaccesible. Cuatro de las nueve listas que descargamos bloquean los centros de datos, así que trabajamos con copias guardadas donde las tenemos, y con gluetun.
- Rotación. Un servidor puede salir de la lista o cambiar de dirección después de nuestra última copia.
- Es un proxy, no una VPN. Los proxies no tienen una lista de proveedor con la que comparar; consulta proxies de centro de datos, residenciales y móviles.
iCloud Private Relay y Cloudflare WARP no son proveedores de VPN en este sentido. Tienen su propio campo, relay_provider, y su propia política, que se explica en iCloud Private Relay y Cloudflare WARP.
Una VPN con nombre no es una VPN más arriesgada
El nombre dice quién opera el servidor; la puntuación sale de la evidencia, como puertos de handshake abiertos, hosting e historial de abuso. Algunas de las puntuaciones más bajas de nuestra muestra fueron para servidores con nombre, y una de las más altas fue para uno sin nombre.
| IP | vpn_provider | Puntuación, acción |
|---|---|---|
| 85.12.5.56 | PrivadoVPN | 36, review |
| 45.83.220.7 | Mullvad (31173 Services) | 46, review |
| 204.13.164.252 | Riseup | 48, review |
| 102.129.235.17 | none | 92, block |
Nuestras bandas son allow hasta 25, review hasta 50, step_up hasta 75 y block por encima de 75. El servidor de PrivadoVPN no respondió a ningún sondeo de handshake en nuestros datos, así que solo se activó known_vpn_server y se quedó en review. El servidor sin nombre respondió a dos. Así es como debe ser: una regla debe ponderar lo que observamos, no el logotipo que hay en el servidor. Los pesos de las señales están en la página de cómo se construye la puntuación.
IPs de entrada, servidores rotados y nombres desactualizados
Una lista de proveedor te dice la dirección a la que se conecta la aplicación. Para la mayoría de los servidores de nuestra muestra, esa misma dirección respondió a nuestros sondeos, pero solo verificamos que las direcciones listadas reciben nombre, no que todas las direcciones de salida que usa un proveedor estén en una lista.
Los nombres de los campos dicen "in". Mullvad usa ipv4_addr_in, y AirVPN publica cuatro direcciones por servidor como ip_v4_in1 a ip_v4_in4. La lista de Surfshark solo da nombres de host, así que alguien tiene que resolver los nombres a IPs antes de que nada pueda coincidir. Nuestra vía 90 hace eso con los nombres de host de servidores de los archivos de gluetun. Así es como au-stream.jumptoserver.com de FastestVPN, 46.102.153.134, obtuvo su nombre.
Las listas también contienen estado que conviene leer. La lista de Mullvad de hoy marca 24 relays como active: false, incluido se-mma-wg-101, 45.83.220.68, que nuestra API sigue nombrando "Mullvad" con 95. Un servidor listado es un dato sobre la flota del proveedor, no una prueba de que el servidor haya cursado tráfico hoy. Por eso también las cifras de IPs de VPN de los distintos proveedores de datos difieren tanto. Cuentan cosas distintas, como servidores, direcciones de entrada listadas, direcciones de salida observadas o rangos completos, en fechas distintas. La propia lista de Mullvad es la única cifra que citamos. Aquí no publicamos un calendario de actualización de las listas de proveedores; si ejecutas el comparador tú mismo, descarga la lista antes de cada lote.
Qué hacer con el nombre de un proveedor
Usa el nombre para políticas e investigación, no como interruptor de bloqueo. Basa las decisiones en recommended_action y en la evidencia que lo respalda, y basa las excepciones y los informes en el nombre.
| Lo que ves | Acción | Por qué |
|---|---|---|
VPN con nombre (vpn_provider definido) | Sigue recommended_action; usa el nombre para las listas de permitidos que elijas, registros de licencias y para agrupar el abuso por operador | El nombre es atribución, no riesgo: PrivadoVPN obtuvo 36, review, y el servidor de Mullvad en Fráncfort 100, block |
VPN sin nombre (is_vpn true, vpn_provider "none") | Trátala exactamente igual que una VPN con nombre con la misma puntuación | 102.129.235.17 obtuvo 92 sin nombre |
Relay (is_relay true) | Permite y puntúa la sesión | Los relays no son proveedores de VPN; usan relay_provider |
Limpia (is_vpn false, sin relay) | Permite salvo que se activen otras señales | No hay evidencia de anonimizador, aunque un servidor listado puede desaparecer, como le pasó al 91.90.122.25 de PIA |
El error habitual es convertir la primera fila en una regla de bloqueo, lo que convierte a los clientes de un proveedor en falsos positivos de detección de VPN. Dos comprobaciones para hacer en tus propios logs esta semana:
- Busca reglas basadas en el nombre. Busca
vpn_provideren tus reglas. Una regla como "bloquear si hay un proveedor con nombre" deja pasar al 92 sin nombre y bloquea al 36 con nombre. Basa las reglas en la acción y la evidencia, y compara los nombres por prefijo. - Compara tus logs con una lista. Pasa al comparador de Mullvad las IPs de registro o inicio de sesión de los últimos 30 días y cuenta las coincidencias. Compáralo con cuántas de esas solicitudes rechazaron tus reglas y luego revisa algunas en la herramienta de consulta de IP.
Preguntas frecuentes
¿Se puede saber a qué VPN pertenece una dirección IP?
Sí, cuando la IP está en una lista de servidores que el proveedor de VPN publica para sus propias aplicaciones. Si no está en ninguna lista, normalmente aún puedes saber que es una VPN, pero no de quién.
¿Existe una lista de direcciones IP de NordVPN?
Las aplicaciones de NordVPN leen una desde api.nordvpn.com, que da la IP de cada servidor en un campo station. El 13 de octubre de 2026 no respondió a las solicitudes desde nuestra red, así que usamos una copia guardada.
¿El WHOIS o el DNS inverso muestran el proveedor de VPN?
Rara vez. La mayoría de los servidores VPN están en redes de hosting alquiladas como M247, así que el WHOIS y el DNS inverso nombran al proveedor de hosting. Incluso el rango propio de Mullvad en Fráncfort está registrado a nombre de 31173 Services.
¿Qué significa vpn_provider none?
La IP no está en ninguna de las listas de servidores que tenemos. No significa que la IP no sea una VPN: revisa is_vpn y scoring.detection_methods.
¿Una VPN identificada recibe una puntuación de fraude más alta?
No. Un servidor listado de PrivadoVPN obtuvo 36, review, mientras que una VPN sin nombre obtuvo 92, block. El nombre dice quién opera el servidor; la puntuación sale de la evidencia.
¿Qué proveedores de VPN publican sus listas de servidores?
Mullvad, AirVPN, IVPN, PrivadoVPN y Riseup respondieron a nuestras solicitudes públicas el 13 de octubre de 2026. NordVPN, Surfshark, PIA y Windscribe publican listas para sus aplicaciones, pero no respondieron desde nuestra red.
El equipo detrás de la API de GeoIPHub
Escrito por el equipo de GeoIPHub, las personas que crean la API de inteligencia IP de GeoIPHub y su escáner. Los borradores se preparan con ayuda de IA y el equipo los edita; los ejemplos de la API son consultas reales contra la API en producción, salvo que se indique que son ilustrativos.


