You can't, and it's a terrible idea anyway. People use multiple computers, and even on their primary computer, they generally change their computer hardware more frequently than their software. Back when I used software like yours, I would disable that protection so I could properly use the software I paid for. Now, I don't even bother, and just buy from your less draconian competitors instead.
People can set their own MAC addresses, so that's not really a solution. Also, routers change the MAC address on packets, so a central server has no access to it.
If you really want to restrict by hardware, the only real way to do it is to supply your own dongle that must be attached to the computer. Yes, you can move the dongle, but you're still restricting use to a physical piece of hardware, so you can't just email someone a license key. You almost never see these because they're annoying for both users and distributors.
The most common form of user restriction nowadays is probably the license server. The software contacts a server to obtain a license, and must release the license before it can be used again somewhere else. This lets a user use software on multiple computers, but only one at a time, which really should be your goal here. It's still a little annoying for users, but acceptable if the software is high quality.