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


  • i-doit Kenner

    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__id

    WHERE 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__id

    Zu 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__id

    WHERE 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…


Log in to reply
 


Datenschutz / Privacy Policy