[RESUELTO] Coincidencia de dirección MAC con Iface

Comparta sus ideas de consultas SQL para generar informes en la consola WAPT Enterprise aquí
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Bloqueado
gavit
Mensajes: 25
Inscripciones: 30 Abr 2020 - 16:21 horas.

22 de junio de 2022 - 11:37

Buen día,

En un proyecto 802.1.X, necesitaría recuperar todas las direcciones MAC de mi red informática.
Más específicamente, la dirección MAC de la tarjeta Ethernet y de la tarjeta WIFI.

El problema es que las PC tienen hasta 38 direcciones MAC.
Necesitaría enumerarlos todos y ponerlos junto al nombre de su tarjeta (enps, eth, etc.)
Pero no podemos hacer:

Código: Seleccionar todo

 host_info->'networking'->*->'mac' as mac,
¿Cómo puedo proceder?

Dado que mi código actualmente se ve así:

Código: Seleccionar todo

select
distinct
host_info->'networking'->0->'mac' as mac,
host_info->'networking'->0->'iface' as iface,
computer_name
FROM hosts
Atentamente,
VITTAZ Gaëtan
Avatar de usuario
htouvet
Experto en WAPT
Mensajes: 436
Inscripción: 16 de marzo de 2015 - 10:48
Contacto :

22 de junio de 2022 - 17:38

Buen día,
Para realizar consultas "avanzadas" sobre JSON, al estilo XPath para XML, es necesario agregar el módulo "jsquery" a PostgreSQL.

En Debian, para instalarlo: (si está instalado postgresql 13)

Código: Seleccionar todo

apt install postgresql-13-jsquery 
sudo -u postgres psql wapt -c "CREATE EXTENSION jsquery;"
Luego la consulta SQL:

Algo como esto:

Código: Seleccionar todo

SELECT
  computer_fqdn,
  t.*
FROM
  hosts,
  jsonb_to_recordset(host_info->'networking') as t
    (mac text, iface text);
                                
TI tranquila
gavit
Mensajes: 25
Inscripciones: 30 Abr 2020 - 16:21 horas.

23 de junio de 2022 - 13:16

Buen día,

Muchas gracias por la rápida respuesta, ¡la consulta SQL funciona perfectamente!
Para computadoras MAC y Linux, no hay problemas de montaje.
Pero para las PC con Windows, tengo el siguiente comentario:
  • [ {6858AE84-3B6D-4D45-8D00-B9AFAA8D578E} (ejemplo)/lista]

    Intenté adaptar la consulta para la tabla WMI, por lo tanto, para los clientes Windows

    Código: Seleccionar todo

    SELECT
      computer_fqdn,
      t.*
    FROM
      hosts,
      jsonb_to_recordset(wmi->'Win32_NetworkAdapter') as t
        (MACAddress text, ProductName text);
        

    Esto no recupera la información; los campos MACAddress y ProductName permanecen vacíos.

    ¿Tiene alguna solución para reinstalar PC con Windows?
    O una solución que recuperaría los datos correctos en una sola solicitud sin tener que realizar una solicitud para Windows y otra para Linux/MAC.

    Atentamente,
    VITTAZ Gaëtan
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

29 de junio de 2022 - 22:28

¡No muy lejos! ;)

Código: Seleccionar todo

SELECT
  computer_fqdn,
  t.*
FROM
  hosts,
  jsonb_to_recordset(wmi->'Win32_NetworkAdapter') as t
    ("MACAddress" text, "ProductName" text);          
Así, por ejemplo:

Código: Seleccionar todo

SELECT
  computer_fqdn,
  t.*
FROM
  hosts,
  jsonb_to_recordset(wmi->'Win32_NetworkAdapter') as t("MACAddress" text, "ProductName" text)
  WHERE t."ProductName" !~* 'vpn'
  AND t."ProductName" !~* 'bluetooth'
  AND t."ProductName" !~* 'Virtual Adapter'
  AND t."ProductName" !~* 'WAN Miniport'
  AND t."ProductName" !~* 'TAP-Windows Adapter V9'
  AND t."ProductName" !~* 'VirtualBox Host-Only Ethernet Adapter'
  AND t."ProductName" !~* 'XenServer PV Network Device'
  AND t."ProductName" !~* 'RAS Async Adapter'
  AND (t."MACAddress" <> '') ;
Bloqueado