Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Unmanaged Devices don't appear in IP report

Open
#82 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
42/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
php, sql
Domain
backend, databases

Research direction

Start in inc/addressing.class.php, focusing on the $types handling for Unmanaged Devices and the generated IP report query. Reproduce the report with debug mode enabled and inspect the reported ambiguous ip grouping warning. Done means Unmanaged Devices appear in the IP report without the SQL warning.

Written by the indexing model from the issue text.

Description

GLPI 10.0.10
IP Adressing 3.0.2
Debian bookworm

I would like to make appear in IP reports Unmanaged Devices discovered by GLPI NetDiscovery tasks, to have a complete view of used IPs in a network.
inc/addressing.class.php contains a code section dedicated to Unmanaged Devices, but $types does not contain Unmanaged.
Unmanaged Devices appear properly in report if I add Unmanaged in $types.
But debug mode shows following message.
What is wrong ?

SQL Warnings: 1052: Column 'ip' in group statement is ambiguous in query "SELECT port.id, 'NetworkEquipment' AS itemtype, dev.id AS on_device, dev.name AS dname, '' AS pname, glpi_ipaddresses.name as ip, port.mac, dev.users_id, INET_ATON(glpi_ipaddresses.name) AS ipnum FROM glpi_networkports port LEFT JOIN glpi_networkequipments dev ON (port.items_id = dev.id AND port.itemtype = 'NetworkEquipment') LEFT JOIN glpi_networknames ON (port.id = glpi_networknames.items_id) LEFT JOIN glpi_ipaddresses ON (glpi_ipaddresses.items_id = glpi_networknames.id) WHERE (glpi_ipaddresses.name IS NOT NULL AND glpi_ipaddresses.name != '') AND glpi_ipaddresses.version LIKE 4 AND (INET_ATON(glpi_ipaddresses.name) BETWEEN '168625409' AND '168625662') AND dev.is_deleted = 0 AND dev.is_template = 0 AND ( dev.entities_id = '3' ) UNION (SELECT port.id, 'Computer' AS itemtype, port.items_id, dev.name AS dname, port.name AS pname, glpi_ipaddresses.name as ip, port.mac ,dev.users_id , INET_ATON(glpi_ipaddresses.name) AS ipnum FROM glpi_networkports port LEFT JOIN glpi_computers dev ON (port.items_id = dev.id AND port.itemtype = 'Computer') LEFT JOIN glpi_networknames ON (port.id = glpi_networknames.items_id) LEFT JOIN glpi_ipaddresses ON (glpi_ipaddresses.items_id = glpi_networknames.id) WHERE (glpi_ipaddresses.name IS NOT NULL AND glpi_ipaddresses.name != '') AND glpi_ipaddresses.version LIKE 4 AND (INET_ATON(glpi_ipaddresses.name) BETWEEN '168625409' AND '168625662') AND ( dev.entities_id = '3' ) AND dev.is_deleted = '0' AND dev.is_template = '0' GROUP BY ip, port.mac ORDER BY ipnum) UNION (SELECT port.id, 'NetworkEquipment' AS itemtype, port.items_id, dev.name AS dname, port.name AS pname, glpi_ipaddresses.name as ip, port.mac ,dev.users_id , INET_ATON(glpi_ipaddresses.name) AS ipnum FROM glpi_networkports port LEFT JOIN glpi_networkequipments dev ON (port.items_id = dev.id AND port.itemtype = 'NetworkEquipment') LEFT JOIN glpi_networknames ON (port.id = glpi_networknames.items_id) LEFT JOIN glpi_ipaddresses ON (glpi_ipaddresses.items_id = glpi_networknames.id) WHERE (glpi_ipaddresses.name IS NOT NULL AND glpi_ipaddresses.name != '') AND glpi_ipaddresses.version LIKE 4 AND (INET_ATON(glpi_ipaddresses.name) BETWEEN '168625409' AND '168625662') AND ( dev.entities_id = '3' ) AND dev.is_deleted = '0' AND dev.is_template = '0' GROUP BY ip, port.mac ORDER BY ipnum) UNION (SELECT port.id, 'Peripheral' AS itemtype, port.items_id, dev.name AS dname, port.name AS pname, glpi_ipaddresses.name as ip, port.mac ,dev.users_id , INET_ATON(glpi_ipaddresses.name) AS ipnum FROM glpi_networkports port LEFT JOIN glpi_peripherals dev ON (port.items_id = dev.id AND port.itemtype = 'Peripheral') LEFT JOIN glpi_networknames ON (port.id = glpi_networknames.items_id) LEFT JOIN glpi_ipaddresses ON (glpi_ipaddresses.items_id = glpi_networknames.id) WHERE (glpi_ipaddresses.name IS NOT NULL AND glpi_ipaddresses.name != '') AND glpi_ipaddresses.version LIKE 4 AND (INET_ATON(glpi_ipaddresses.name) BETWEEN '168625409' AND '168625662') AND ( dev.entities_id = '3' ) AND dev.is_deleted = '0' AND dev.is_template = '0' GROUP BY ip, port.mac ORDER BY ipnum) UNION (SELECT port.id, 'Phone' AS itemtype, port.items_id, dev.name AS dname, port.name AS pname, glpi_ipaddresses.name as ip, port.mac ,dev.users_id , INET_ATON(glpi_ipaddresses.name) AS ipnum FROM glpi_networkports port LEFT JOIN glpi_phones dev ON (port.items_id = dev.id AND port.itemtype = 'Phone') LEFT JOIN glpi_networknames ON (port.id = glpi_networknames.items_id) LEFT JOIN glpi_ipaddresses ON (glpi_ipaddresses.items_id = glpi_networknames.id) WHERE (glpi_ipaddresses.name IS NOT NULL AND glpi_ipaddresses.name != '') AND glpi_ipaddresses.version LIKE 4 AND (INET_ATON(glpi_ipaddresses.name) BETWEEN '168625409' AND '168625662') AND ( dev.entities_id = '3' ) AND dev.is_deleted = '0' AND dev.is_template = '0' GROUP BY ip, port.mac ORDER BY ipnum) UNION (SELECT port.id, 'Printer' AS itemtype, port.items_id, dev.name AS dname, port.name AS pname, glpi_ipaddresses.name as ip, port.mac ,dev.users_id , INET_ATON(glpi_ipaddresses.name) AS ipnum FROM glpi_networkports port LEFT JOIN glpi_printers dev ON (port.items_id = dev.id AND port.itemtype = 'Printer') LEFT JOIN glpi_networknames ON (port.id = glpi_networknames.items_id) LEFT JOIN glpi_ipaddresses ON (glpi_ipaddresses.items_id = glpi_networknames.id) WHERE (glpi_ipaddresses.name IS NOT NULL AND glpi_ipaddresses.name != '') AND glpi_ipaddresses.version LIKE 4 AND (INET_ATON(glpi_ipaddresses.name) BETWEEN '168625409' AND '168625662') AND ( dev.entities_id = '3' ) AND dev.is_deleted = '0' AND dev.is_template = '0' GROUP BY ip, port.mac ORDER BY ipnum) UNION (SELECT port.id, 'Enclosure' AS itemtype, port.items_id, dev.name AS dname, port.name AS pname, glpi_ipaddresses.name as ip, port.mac ,0 AS users_id , INET_ATON(glpi_ipaddresses.name) AS ipnum FROM glpi_networkports port LEFT JOIN glpi_enclosures dev ON (port.items_id = dev.id AND port.itemtype = 'Enclosure') LEFT JOIN glpi_networknames ON (port.id = glpi_networknames.items_id) LEFT JOIN glpi_ipaddresses ON (glpi_ipaddresses.items_id = glpi_networknames.id) WHERE (glpi_ipaddresses.name IS NOT NULL AND glpi_ipaddresses.name != '') AND glpi_ipaddresses.version LIKE 4 AND (INET_ATON(glpi_ipaddresses.name) BETWEEN '168625409' AND '168625662') AND ( dev.entities_id = '3' ) AND dev.is_deleted = '0' AND dev.is_template = '0' GROUP BY ip, port.mac ORDER BY ipnum) UNION (SELECT port.id, 'PDU' AS itemtype, port.items_id, dev.name AS dname, port.name AS pname, glpi_ipaddresses.name as ip, port.mac ,0 AS users_id , INET_ATON(glpi_ipaddresses.name) AS ipnum FROM glpi_networkports port LEFT JOIN glpi_pdus dev ON (port.items_id = dev.id AND port.itemtype = 'PDU') LEFT JOIN glpi_networknames ON (port.id = glpi_networknames.items_id) LEFT JOIN glpi_ipaddresses ON (glpi_ipaddresses.items_id = glpi_networknames.id) WHERE (glpi_ipaddresses.name IS NOT NULL AND glpi_ipaddresses.name != '') AND glpi_ipaddresses.version LIKE 4 AND (INET_ATON(glpi_ipaddresses.name) BETWEEN '168625409' AND '168625662') AND ( dev.entities_id = '3' ) AND dev.is_deleted = '0' AND dev.is_template = '0' GROUP BY ip, port.mac ORDER BY ipnum) UNION (SELECT port.id, 'Cluster' AS itemtype, port.items_id, dev.name AS dname, port.name AS pname, glpi_ipaddresses.name as ip, port.mac ,0 AS users_id , INET_ATON(glpi_ipaddresses.name) AS ipnum FROM glpi_networkports port LEFT JOIN glpi_clusters dev ON (port.items_id = dev.id AND port.itemtype = 'Cluster') LEFT JOIN glpi_networknames ON (port.id = glpi_networknames.items_id) LEFT JOIN glpi_ipaddresses ON (glpi_ipaddresses.items_id = glpi_networknames.id) WHERE (glpi_ipaddresses.name IS NOT NULL AND glpi_ipaddresses.name != '') AND glpi_ipaddresses.version LIKE 4 AND (INET_ATON(glpi_ipaddresses.name) BETWEEN '168625409' AND '168625662') AND ( dev.entities_id = '3' ) AND dev.is_deleted = '0' GROUP BY ip, port.mac ORDER BY ipnum) UNION (SELECT port.id, 'Unmanaged' AS itemtype, port.items_id, dev.name AS dname, port.name AS pname, glpi_ipaddresses.name as ip, port.mac ,0 AS users_id , INET_ATON(glpi_ipaddresses.name) AS ipnum FROM glpi_networkports port LEFT JOIN glpi_unmanageds dev ON (port.items_id = dev.id AND port.itemtype = 'Unmanaged') LEFT JOIN glpi_networknames ON (port.id = glpi_networknames.items_id) LEFT JOIN glpi_ipaddresses ON (glpi_ipaddresses.items_id = glpi_networknames.id) WHERE (glpi_ipaddresses.name IS NOT NULL AND glpi_ipaddresses.name != '') AND glpi_ipaddresses.version LIKE 4 AND (INET_ATON(glpi_ipaddresses.name) BETWEEN '168625409' AND '168625662') AND ( dev.entities_id = '3' ) AND dev.is_deleted = '0' GROUP BY ip, port.mac ORDER BY ipnum)"

Dominant language
PHP
Stars
43
Forks
23
Avg merge
1h 48m
Merged PRs (30d)
3

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from pluginsGLPI/addressing

All issues in pluginsGLPI/addressing

Similar issues

More PHP issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.