Bueno los Programas que generan id de hardware miran ciertos parametros como Nombre del PC , Memoria Ram , Datos del Procesador , etc ...
Para obtener esos datos, desde PHP (estamos hablando sobre el servidor donde correr el interprete), tenemos que parsear la info del phpinfo, aqui hay una
funcion que lo hace parsePHPConfig
Entonces dicha funcion entrega el nombre del equipo y datos del procesador, esos datos lo puedes concatener y luego aplicarlo a alguna funcion para que genere un id (como el md5, o tu crea una, etc ...)
entonces para obtener dichos datos q te puden servir utilizando la funcion y que la salida la entrege en la variable $a , seria
Código PHP:
<?
echo $a['System'].'-'.$a['COMPUTERNAME'].'-'.$a['USERDOMAIN'].'-'.$a['PROCESSOR_IDENTIFIER'];
?>
Lo cual imprime en mi PC local
Código:
Windows NT DEERME 5.1 build 2600-DEERME-DEERME-x86 Family 6 Model 8 Stepping 1, AuthenticAMD
y con ese string podrias generar un idhardware
Saludos