Giving -1 and not giving alternative is so fair ;-)
Using permanenty stored MAC is the only proposed solutions so far. Sure, you can reflash efuse (and change MAC). With that approach you will never find any unique id on any CPU that can't be altered (Intel tried it once and after EU commision intervention Intel abandoned idea of "serial numbers" in CPUs.).
Still, it's only way to get any unique ID based on hardware (accepting that, it can be changed by flashing efuse). If considering only out-of-the-box device, it can be assumed it's unique (for some purposes). I mean, when using new (own) device one should not be aware that someone in the middle changed efuse. If considering no-trust and 3rd parties, then id should be generated by software ("hard-to-guess" algorithms, uuid4 maybe?). Author did not reveal why and for what he needs that ID.