Yeah, I've run into similar problems before; there really isn't any clear way to solve it in my mind.
You might be able to use the client's MAC address, with two caveats:
1) I haven't a clue how to retrieve it for a connection.
2) It is possible (though less well known) to spoof a MAC address with some (assumedly basically all) operating systems (Windows included)