Primäre MAC Adresse in Report
-
Hallo zusmmane,
ich möchte eine Übersicht der Rechner in meinem Netzwerk erstellen und habe dafür an den Report Manager gedacht.
Ich möchte einen CSV-Export erstellen, indem jeder Rechner in einer Zeile aufgelistet wird, dazu seine primäre IP-Adresse und die entsprechende MAC Adresse und alle weiteren IP- und MAC Adressen in einem Feld jeweils durch Komma oder Semikolon getrennt.1. Primäre IP-Adresse geht über die Eigenschaft "Use Primary Host Adress", aber wie bekomme ich die dazugehörige MAC-Adresse?
2. Kann ich bei Eigenschaften, die mehrere Werte enthalten eine Ausgabe erzeugen, sodass die einzelnen Werte durch Kommata getrennt in eine Ausgabezeile geschrieben werden?Vielen Dank für eure Hilfe!
MaM -
Hallo MaM,
so einfach scheint das nicht zu gehen, habe jetzt auf SQL Ebene folgendes Statement zusammen gebaut, zumindest ist damit 1. erledigt:
SELECT
j1.isys_obj__id AS 'id',
j1.isys_obj__title AS 'LC__UNIVERSAL__TITLE###1',
j4.isys_cats_net_ip_addresses_list__title AS 'LC__CATG__IP__PRIMARY_ADDRESS###47',
j2.isys_catg_port_list__mac AS 'LC__CMDB__CATG__PORT__MAC###39'FROM isys_obj AS j1
INNER JOIN isys_catg_port_list AS j2 ON j2.isys_catg_port_list__isys_obj__id = j1.isys_obj__id
INNER JOIN isys_catg_ip_list AS j7 ON j1.isys_obj__id = j7.isys_catg_ip_list__isys_obj__id AND j7.isys_catg_ip_list__primary = 1
INNER JOIN isys_cats_net_ip_addresses_list AS j4 ON j7.isys_catg_ip_list__isys_cats_net_ip_addresses_list__id = j4.isys_cats_net_ip_addresses_list__id AND j7.isys_catg_ip_list__primary = 1
INNER JOIN isys_obj AS j6 ON j6.isys_obj__id = j4.isys_cats_net_ip_addresses_list__isys_obj__idWHERE TRUE
AND j1.isys_obj__isys_obj_type__id != '60'
AND j1.isys_obj__isys_obj_type__id = '5'
AND j2.isys_catg_port_list__id = j7.isys_catg_ip_list__isys_catg_port_list__idZu 2.:
Nur auf SQL Ebene, per Abfrage Editor geht das nicht.Gruss,
jkondek -
Hi,
zu Punkt 1)
Du musst im Report Manager einen Report im SQL Modus erstellen. Hier ist exemplarisch ein Report, der die Primären IP-Adressen und dazugehörigen Mac-Adressen aller Clients ausgibt:
SELECT
obj_main.isys_obj__id AS 'id',
obj_main.isys_obj__title AS 'LC__UNIVERSAL__TITLE###1',
j4.isys_cats_net_ip_addresses_list__title AS 'LC__CATG__IP__PRIMARY_ADDRESS###47',
j2.isys_catg_port_list__mac AS 'LC__CMDB__CATG__PORT__MAC###39'FROM isys_obj AS obj_main
INNER JOIN isys_cmdb_status AS obj_main_status ON obj_main_status.isys_cmdb_status__id = obj_main.isys_obj__isys_cmdb_status__id
LEFT JOIN isys_catg_ip_list AS j7 ON obj_main.isys_obj__id = j7.isys_catg_ip_list__isys_obj__id AND j7.isys_catg_ip_list__primary = 1
LEFT JOIN isys_cats_net_ip_addresses_list AS j4 ON j7.isys_catg_ip_list__isys_cats_net_ip_addresses_list__id = j4.isys_cats_net_ip_addresses_list__id AND j7.isys_catg_ip_list__primary = 1
LEFT JOIN isys_catg_port_list AS j2 ON j2.isys_catg_port_list__id = j7.isys_catg_ip_list__isys_catg_port_list__id
LEFT JOIN isys_obj_type AS j10 ON j10.isys_obj_type__id = obj_main.isys_obj__isys_obj_type__idWHERE TRUE
AND ( (j10.isys_obj_type__id != '60' ) AND (j10.isys_obj_type__id != '60' ) ) AND ( (j10.isys_obj_type__id = '10' ) ) ORDER BY obj_main.isys_obj__title ASC ;Zu 2)
auch das geht nur mit SQL. GROUP_CONCAT ist das Stichwort. Das ist allerdings nicht mal eben so gemacht…