Есть несколько факторов, на которые нужно обратить внимание.
Убедиться, что для каждого ip-адреса будет только 1 сеанс, будет лучшим способом сделать это, единственным недостатком является то, что если пользователь не выходит из системы, у вас могут возникнуть проблемы.
Что бы я сделал, это
Храните зарегистрированных пользователей в таблице и отслеживайте их последние действия. Если ваш сайт является сайтом, на котором пользователь может не менять страницу в течение некоторого времени, вам следует настроить Javascript, который просто пингует ваш сервер из браузера, чтобы PHP всегда в курсе.
Если пользователь A вошел в систему и попытается войти с другой попытки с другого IP-адреса, вам следует деактивировать статус пользователя A, вошедшего в систему, и позволить пользователю B начать новый сеанс.
Вы также должны отслеживать IP-адреса, которые пользователь использует для входа в систему, чтобы иметь увеличенную таблицу, такую как
user_id ip hits
--------------------------------------
1 xxx.yyy.zzz.244 6
1 xxx.yyy.zzz.224 4
1 xxx.yyy.zzz.264 1
1 xxx.yyy.zzz.124 1
1 xxx.yyy.zzz.174 1
2 aaa.bbb.zzz.678 3
.....
Таким образом, если пользователь A вошел в систему и попытался использовать пользователь B, вы можете запустить проверку, чтобы проверить, использовался ли этот IP-адрес раньше, если он используется, вы просто запускаете прямой выход из системы, в противном случае вы можете задать секретный вопрос предоставляется при регистрации, чтобы помочь с безопасностью вещей