Well the simple way for this will have to be getting the user information be for he/she can vote something like Registration first be for vote can help you to identify if the user has already voted or not, you can automatically take or store his MAC to a file and store also his username, location etc but you need to get as many information as possible and then when authentication the user you can check if the MAC, USERNAME, PASSWORD etc has already been saved if this information or some of this information has been already been saved then you know that this person has already voted so you can deny access from his either display message stating that it seems as if you have already being voted before. That will help you solve your problem
My suggestion is add a column to your userTable, call it something like Voted or doneVoting and set it to bit (true or false). Once that user already voted then set the voted column to true. On your log in page check that field of the user if its true, then block the user, if false let the user to continue.