How would these be frustrating for users?
There are a couple ways I can think to implement this. First, as was
mentioned, restrict login to only the first (or first 3, whatever)
successful logins. You'd store the successful login IPs in another
table, and just have login fail when there's three or whatever IPs for
a given user. Delete the corresponding row when a user logs out. One
problem with this, though, is that it does absolutely nothing to
prevent multiple users sharing an IP (such as being a VPN or proxy) to
login once one is successful. I also suppose it might be helpful to
automatically "expire" inactive IPs after a certain amount of time,
but I'm not sure that actually addresses the issue at hand.
Actually the other ways I thought of are pretty horrible, and even the
above both doesn't address the problem your facing *and* makes it
harder for the user to make full use of there account. So yeah, forgo
trying to enforce this via technology. If you do need to though, you
can at least track the login habits of users, and maybe warn those who
are massively abusing their privileges.