Página 1 de 1
[RESUELTO] Coincidencia de dirección MAC con Iface
Publicado: 22 de junio de 2022 - 11:37
por gavit
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ó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
Re: Coincidir dirección MAC con Iface
Publicado: 22 de junio de 2022 - 17:38
por htouvet
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);
Re: Coincidir dirección MAC con Iface
Publicado: 23 de junio de 2022 - 13:16
por gavit
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
Re: Coincidir dirección MAC con Iface
Publicado: 29 de junio de 2022 - 22:28
por sfonteneau
¡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" <> '') ;