Saltar al contenido
← Guías

Guía · Webs y formularios

Cómo saber qué tecnología usa una web y quién es su dueño: script gratis con webappanalyzer y WHOIS

Script en Python que lee una lista de URLs y saca a un CSV su tecnología (CMS, servidor, analítica, versiones) con las reglas de webappanalyzer, y los datos del dominio y de contacto por RDAP y WHOIS.

Actualizada
22 oct 2026
Lectura
9 min
Herramientas
6

Respuesta corta: con nuestro script en GitHub le pasas un .txt con una URL por línea y te devuelve un CSV con la tecnología de cada web (CMS, lenguaje, servidor, analítica, CDN y versiones cuando se ven), detectada con las 7647 huellas de webappanalyzer, y los datos del dominio: registrador, fechas, titular, contacto y correo de abuso, por RDAP y WHOIS. Es gratis, no necesita cuentas ni claves y se ejecuta con un comando.

uv run analizar_webs.py webs.txt

Para qué sirve

  • Revisar tu cartera de webs: si eres agencia o agente digitalizador, saber de un vistazo qué CMS y qué versiones tiene cada web de la que eres responsable y cuándo caduca cada dominio. Tras PHP2Shell, que deja sin parche a PHP 8.1 y anteriores y que según nuestra estimación afecta a unas 115.500 webs del Kit Digital, es lo primero que conviene saber.
  • Estudiar a la competencia: con qué CMS, analítica o plataforma de comercio trabajan las webs de tu sector.
  • Auditar antes de una migración: inventariar qué usa cada web (formularios, chat, analítica, CDN) antes de moverla.
  • Saber a quién avisar: el registrador y su correo de abuso para denunciar una web fraudulenta o una suplantación.

Lo que necesitas

  • uv, que instala Python y las dependencias por ti (brew install uv en Mac, o el instalador de su web).
  • El script: descarga la carpeta analizar-web-tecnologia-whois del repositorio o clónalo con git clone https://github.com/magranero/yeswelab-laboratorio.
  • Opcional, para detectar más: Chromium de Playwright (uv run --with playwright playwright install chromium).

Paso 1: la lista de URLs

Un fichero de texto con una URL por línea. Las líneas que empiezan por # se ignoran y, si falta https://, se añade. El ejemplo que viene en el repositorio:

# Una URL por línea. Las líneas que empiezan por # se ignoran.
https://yeswelab.com
https://wordpress.org
https://www.python.org
https://www.mozilla.org
https://www.boe.es

Paso 2: ejecutarlo

# Modo rápido: solo Python, sin navegador
uv run analizar_webs.py webs.txt

# Con nombre de salida y un JSON con las pruebas de cada detección
uv run analizar_webs.py webs.txt -o mis_webs.csv --detalle mis_webs.json

# Modo navegador: abre cada web en Chromium y detecta bastante más
uv run --with playwright analizar_webs.py webs.txt --navegador

La primera vez descarga las reglas de webappanalyzer, fijadas a un commit concreto para que dos ejecuciones den lo mismo. Con --reglas master usa las más recientes.

Paso 3: leer el CSV

Una fila por URL. Las columnas más útiles:

ColumnaQué contiene
tecnologiasTodo lo detectado en la web, con versión si se ve: WordPress 7.2 | PHP | Nginx…
cms, lenguajes, servidor_web, analitica, cdnLo mismo, separado por categoría
servicios_dnsServicios que solo aparecen en los DNS del dominio
registrador, alta_dominio, caducidad_dominioDatos del registro del dominio
titular, titular_paisDueño del dominio, (oculto) o (servicio de privacidad: …)
emails_contacto, telefonos_contactoContacto del titular cuando el registro lo publica
email_abusoDónde denunciar un abuso: el correo del registrador
erroresLo que no se pudo obtener y por qué

Así salieron las 5 webs del ejemplo el 22 de octubre de 2026 (modo navegador, resumido):

WebTecnología detectadaTitular del dominio
yeswelab.comAstro, Netlify, Umami, Let’s Encrypt, HSTS, Open GraphOculto (solo se ve el país: ES)
wordpress.orgWordPress 7.2, PHP, MySQL, Nginx, Gutenberg 24.2.0, Google Analytics… (15)Servicio de privacidad: DNStination, Inc.
python.orgNginx, Varnish, jQuery 1.8.2, Modernizr 2.6.2, Plausible… (11)Oculto
mozilla.orgGoogle Tag Manager, Varnish, Let’s Encrypt, HSTS, Open Graph… (6)Mozilla Corporation, US, con correo y teléfono
boe.esSolo HSTSNo disponible: .es no tiene WHOIS público

Tres lecciones de esa tabla:

  • El navegador marca la diferencia. En modo rápido salieron 22 tecnologías en total; con --navegador, 39. Casi la mitad de las huellas de webappanalyzer son variables de JavaScript o elementos de la página que solo existen cuando se ejecuta. Astro y Umami en yeswelab.com, o jQuery en python.org, solo aparecen así.
  • Una web bastionada no cuenta casi nada. El BOE no anuncia su servidor ni su gestor de contenidos y usa su propio JavaScript: solo se ve que obliga a usar HTTPS (HSTS).
  • Los DNS no son la web. Los dominios de python.org y mozilla.org tienen registros de verificación de OpenAI o Anthropic, pero eso no significa que la web use esos servicios: significa que alguien de la organización ha verificado el dominio. Por eso van aparte, en servicios_dns.

Cómo funciona por dentro

La tecnología: las huellas de webappanalyzer

webappanalyzer es la continuación abierta de las reglas de Wappalyzer, que se volvió privado en agosto de 2023. Cada tecnología es un JSON con expresiones regulares para cada sitio donde puede delatarse:

  • Cabeceras HTTP (Server: nginx, X-Powered-By: PHP/8.3), cookies (PHPSESSID, wp-settings) y etiquetas meta (generator: WordPress 7.2).
  • HTML y scripts: rutas como /wp-content/ o librerías como jquery-1.8.2.min.js, de donde sale la versión.
  • DNS, certificado TLS y robots.txt: quién gestiona el correo, quién emitió el certificado.
  • Con navegador: variables globales de JavaScript (window.wp), selectores CSS y peticiones en segundo plano.

Además, unas tecnologías implican otras (WordPress implica PHP y MySQL), otras se excluyen entre sí y otras solo cuentan si aparece la que requieren. El script aplica todo eso y, con --detalle, guarda qué prueba delató cada tecnología y con qué confianza.

El contacto: RDAP antes que WHOIS

WHOIS es el protocolo de siempre: texto libre, distinto en cada registro. RDAP es su sucesor estándar, en JSON y con el mismo formato en todos los registros que lo ofrecen. El script:

  1. Busca en el directorio oficial de IANA el servidor RDAP del dominio (.com, .org, .eu…).
  2. Si el registro solo publica el registrador, como pasa con .com y .org, sigue el enlace al RDAP del registrador, donde está el titular.
  3. Si aun así no hay contacto, prueba con WHOIS clásico (puerto 43).
  4. Marca como (oculto) lo que el registro protege y como (servicio de privacidad: …) los intermediarios, para que nadie los confunda con el dueño real.

Limitaciones

  • Solo ve lo que la web enseña. Ocultar cabeceras y versiones es una buena práctica de seguridad, y esas webs dan poco.
  • Las versiones pueden engañar: algunas salen de comentarios o nombres de fichero que nadie actualizó.
  • .es no tiene RDAP ni WHOIS público. Para esos dominios solo queda la consulta manual en dominios.es.
  • El RGPD oculta a los particulares. Lo normal es ver el registrador, las fechas y el país, y el titular solo cuando es una organización que no lo ha ocultado.

Úsalo con cabeza

  • Una visita por web. El script pide la portada y robots.txt, se identifica en su User-Agent y espera un segundo entre webs. No lo conviertas en un rastreador.
  • Los datos de contacto son datos personales cuando identifican a una persona. No los uses para publicidad sin consentimiento (artículo 21 de la LSSI) ni para montar bases de datos de contactos.
  • Para tu cartera, no para la de otros. Saber que una web tiene un CMS antiguo sirve para actualizarla si es tuya o de tus clientes. Para el resto, como mucho, avisar al responsable.

Relacionado

Lo que haríamos en el laboratorio

Si gestionas decenas o cientos de webs, te montamos el inventario completo: tecnología y versiones de cada una, caducidad de dominios y certificados, y qué hay que actualizar primero, con los datos y sin alarmismo.

¿Quieres saber cómo está tu cartera de webs? Encárganos el experimento.

Preguntas frecuentes

¿Cómo puedo saber con qué está hecha una web?

Con un detector de tecnologías como Wappalyzer o su continuación abierta, webappanalyzer: miran las cabeceras HTTP, las cookies, el HTML, los scripts y los DNS de la web y los comparan con miles de huellas conocidas. Nuestro script hace eso mismo para una lista de URLs y lo guarda en un CSV.

¿Qué es webappanalyzer?

Es la continuación de código abierto de las reglas de Wappalyzer, que pasó a ser privado en agosto de 2023. La mantiene la empresa Enthec en GitHub con licencia GPL-3.0 y, a 22 de octubre de 2026, reconoce 7647 tecnologías.

¿Cómo sé quién es el dueño de un dominio?

Con una consulta WHOIS o, mejor, RDAP, su sucesor estándar en JSON. Devuelven el registrador, las fechas de alta y caducidad y, si el titular no los ha ocultado, su organización, país y contacto. Desde el RGPD, los datos de particulares suelen estar ocultos.

¿Por qué no salen los datos de un dominio .es?

Porque el registro de .es (Red.es) no ofrece RDAP ni WHOIS público: solo responde a IP autorizadas. La consulta pública se hace a mano en dominios.es, con captcha.

¿Puedo usar los correos del WHOIS para enviar publicidad?

No. Si identifican a una persona son datos personales, y en España el artículo 21 de la LSSI prohíbe enviar comunicaciones comerciales por correo sin consentimiento previo. Úsalos para lo que se publican: avisar de un problema con el dominio o la web.

#webappanalyzer#Wappalyzer#RDAP#WHOIS#Python#Playwright