[GELÖST] MAC-Adressenabgleich mit Interface

Teilen Sie hier Ihre Ideen für SQL-Abfragen zur Berichterstellung in der WAPT Enterprise-Konsole
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Gesperrt
Gavit
Nachrichten: 25
Anmeldung: 30. April 2020 - 16:21 Uhr

22. Juni 2022 - 11:37 Uhr

Guten Morgen,

In einem 802.1.X-Projekt müsste ich alle MAC-Adressen meines Computernetzwerks abrufen.
Genauer gesagt, die MAC-Adresse der Ethernet-Karte und der WLAN-Karte.

Das Problem ist, dass PCs bis zu 38 MAC-Adressen haben.
Ich müsste sie alle auflisten und neben ihren Kartennamen (enps, eth usw.) schreiben
Aber das können wir nicht tun:

Code: Alle auswählen

 host_info->'networking'->*->'mac' as mac,
Wie kann ich vorgehen?

Angenommen, mein Code sieht derzeit so aus:

Code: Alle auswählen

select
distinct
host_info->'networking'->0->'mac' as mac,
host_info->'networking'->0->'iface' as iface,
computer_name
FROM hosts
Aufrichtig,
VITTAZ Gaëtan
Benutzeravatar
htouvet
WAPT-Experte
Nachrichten: 436
Anmeldung: 16. März 2015 - 10:48 Uhr
Kontakt:

22. Juni 2022 – 17:38 Uhr

Guten Morgen,
Um „erweiterte“ Abfragen auf JSON durchzuführen, ähnlich wie XPath für XML, müssen Sie das Modul „jsquery“ zu PostgreSQL hinzufügen.

Unter Debian installieren Sie es wie folgt (falls PostgreSQL 13 installiert ist):

Code: Alle auswählen

apt install postgresql-13-jsquery 
sudo -u postgres psql wapt -c "CREATE EXTENSION jsquery;"
Dann die SQL-Abfrage:

Etwa so:

Code: Alle auswählen

SELECT
  computer_fqdn,
  t.*
FROM
  hosts,
  jsonb_to_recordset(host_info->'networking') as t
    (mac text, iface text);
                                
Ruhige IT
Gavit
Nachrichten: 25
Anmeldung: 30. April 2020 - 16:21 Uhr

23. Juni 2022 – 13:16 Uhr

Guten Morgen,

Vielen Dank für die schnelle Antwort, die SQL-Abfrage funktioniert einwandfrei!
Bei MAC- und Linux-Computern gibt es keine Probleme beim Mounten.
Für Windows-PCs habe ich jedoch folgendes Feedback:
  • [ {6858AE84-3B6D-4D45-8D00-B9AFAA8D578E} (Beispiel)/Liste]

    Ich habe versucht, die Abfrage für die WMI-Tabelle anzupassen, daher für Windows-Clients

    Code: Alle auswählen

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

    Die Informationen werden dadurch nicht abgerufen; die Felder MACAddress und ProductName bleiben leer.

    Haben Sie eine Lösung für die Neuinstallation von Windows-PCs?
    Oder eine Lösung, die die korrekten Daten in einer einzigen Anfrage abruft, ohne dass eine Anfrage für Windows und eine weitere Anfrage für Linux/MAC gestellt werden muss.

    Aufrichtig,
    VITTAZ Gaëtan
Benutzeravatar
Sfonteneau
WAPT-Experte
Nachrichten: 2322
Registriert: 10. Juli 2014 - 23:52 Uhr
Kontakt:

29. Juni 2022 – 22:28 Uhr

Nicht weit! ;)

Code: Alle auswählen

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

Code: Alle auswählen

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" <> '') ;
Gesperrt