Could it not work on a simpler basis
For example take a user with the name
mrweb
If mrweb goes to your forum and enters the incorrect details then a value changes in the database the value could start at 0 and would increase by 1 for every incorrect guess, if it was equal to 3 then the account locks no matter what computer or IP address you use you can't get in because the value in the database is equal to 3, it could either locked like that for a pre-defined time or need an admin to reset the value.
If you get the password wrong on the first try and right on the second go, the field resets to 0 on login as its not 3 incorrect passwords in a row.