Pagina di manuale di Nmap dice
Nmap uses raw IP packets in novel ways to determine what hosts are
available on the network, what services (application name and version)
those hosts are offering, what operating systems (and OS versions)
they are running, what type of packet filters/firewalls are in use,
and dozens of other characteristics.
Credo che nmap non possa rilevarli come macchine singole perché la discovery dell'host di nmap è una scansione di livello 3 (Nmap utilizza raw IP Packets in novel ...) e gli indirizzi MAC sono incorporati nel layer 2 di Modello OSI.
Modifica
L'unica identità di un computer su una rete è il suo indirizzo MAC e l'indirizzo IP. Provare fortuna con questi due nel tuo caso non ha senso. Un modo possibile che vedo è che fai interagire l'utente con un server web e impiantare alcuni cookie su di esso. Questi cookie potrebbero essere utili per identificare un utente. Ma se l'utente utilizza un nuovo browser o cancella i cookie, si perderebbe il monitoraggio.
Puoi anche scrivere uno script lato client per creare un file con un numero generato casualmente in una determinata directory del computer per tracciare l'utente. Il numero casuale può essere confrontato con un DB per l'identificazione. Ma ha i suoi lati negativi come i problemi di autorizzazione per scrivere e leggere i dati dal PC dell'utente. Anche lo script lato client è visibile all'utente nel codice sorgente della pagina. Un utente può semplicemente calpestare ed eliminare il tuo file.
Non credo che ci sia un modo semplice per raggiungere il tuo obiettivo, ma potresti usare la conoscenza del club sui modi che ho menzionato e farti strada. In bocca al lupo! Spero che aiuti.