Not really an answer, but a word of caution. I worked for a software company that did a similar sort of licensing mechanism and it was... brittle. Especially on laptops. Consider:
When switching between wired and wireless on a laptop, you'll have a different MAC address on each interface.
There may be advantages to changing your MAC address. eg, some cable internet providers in the states foolishly tie your MAC address to your account and one might need to plug their computer in straight to the cable modem and then clone their router's MAC if their router were to die.
If a user were to boot from a different hard drive (for example, a flash drive or a USB stick), would this change what's reported as the first drive?
And this was long before the days of commodity virtualization. Now consider that you can switch a setting and reboot your VM and have: a different amount of RAM, a different sized hard drive, a different type of virtual hard drive controller type (IDE, SCSI, perhaps multiple SCSI controller interfaces). And you can hot-swap CD/DVD devices and change NIC settings with a mouse click.
So I'm not saying "don't do this", exactly, but I will encourage you to test this mechanism on as many machines in as many environments as you can, and I will further suggest that your users will have precious little patience when they can't run the software that they've paid for.
Have you considered hardware dongles?