There's probably already a feature request for this but I couldn't find it.
If was reading through Adding alias-clients to Pi-hole FTL (I'd prefer the name virtual client but I guess that ship has already sailed), and while I do think it's a step in the right direction-- it's a manual process and doesn't really solve the points made in that very thread by itself
or in the case of randomly generated MAC addresses, not at all.
A better (at least in my case), more automatic solution would be to just group the devices by their hostname. In my setup, I see every device twice (one IPv4 and one IPv6) in the log/top lists. I'm using LLAs, which limit the amout of IPv6 addresses I see, and all my IPv6 devices have a hostname associated to them, so for me it would be a simple as comparing those hostnames and then combining matches.
This approach could obviously also be used in conjunction to the manual alias-client tagging we have right now.
Could we not add a new field in the existing aliasclient table, defining a regex that allows automatic identification and assignment of the aliasclient_id (in the network table), based on the newly found client name and regex match?
Example:
I have a device, that has WIFI, Ethernet IPv4 and Ethernet IPv6 with ever changing temporary IP addresses. MAC addresses cannot be used to identify the client, because the client is on a different subnet.
Client names: y50wifi (1 IP), y50eth0 (1 IP), y50ipv6 (multiple IPs)
a regex (\.|^)y50(wifi|eth0|ipv6) would cover all of these names, thus allowing automatic assignment of the aliasclient_id.
edit
I use different hostnames for each IP, because I want to be able to identify which IP (adapter) was used to perform the DNS query, using the long term query data.
/edit