Well one thing I noticed is PHP's built-in function "gethostbyaddr()".
This will return the host name of a given IP, which generally (from what I've noticed) doesn't change very much even when an IP changes. So what if I used this function in conjunction with "similar_text()", and if host that is trying to vote has greater than a 75% match with a host that has already voted in the past 12 hours, deny them?
Would just like to hear some thoughts.
Otherwise, will most likely take Crabfinger & Eujut's approach. (Which will restrict a few people from voting, which pains me)
P.S. I've googled around to find out how to obtain the mac address, and it seems possible. Although I am sure it is not sent in the browsers HTTP headers, I think there is a work-around. I'll look more into that.