Я думаю, что эту проблему просто никто не решал, поскольку в этом нет смысла. Альтернативой идентификации по IP-адресам может являться только идентификация по MAC и по сетевому имени. Идентификация по MAC может работать только если сервер находится в одной локальной сети с клиентами (между ними не должно быть роутеров и прокси, только свичи), поэтому это вариант недостойный рассмотрения. Для сопоставления IP и сетевого имени нужен или NetBIOS (тоже перестает работать за роутерами и прокси) или реверсный DNS, в котором компьютеры регистрируются автоматически. Такой есть, например, в Active Directory. Однако если у ваших администраторов хватает умения пользоваться AD, у них должно хватить умения настроить в DHCP постоянные адреса для нужных компьютеров или хотя бы увеличить время аренды DHCP адреса до нескольких недель, тогда адреса будут меняться, только если компьютеры не используются дольше указанного времени.
Поэтому самый адекватный
в вашем случае
вариант - это ввод пароля. Но пароль должен вводиться преподавателем, а не говориться студентам! Иначе этот способ защиты не имеет смысла.
Можете посмотреть https://moodle.org/plugins/browse.php?list=set&id=55 это. Однако там тоже, вроде бы, всё упирается в IP-адреса.
Хотя всё это не помешает студентам запустить на компьютере Teamviewer без административных полномочий и из соседней аудитории тыкать на правильные ответы. Можно против этого, конечно, поставить SafeExаmBrowser, но можно обойти и его. Так что абсолютной защиты нет и не будет.
Единственный известный мне адекватный способ для тестов - проводить сразу после теста собеседование по вопросам теста, чтобы убедиться, что ответы в тесте соответствуют знаниям студента и ставить оценку не на основе теста, а на основе собеседования. Тест же использовать исключительно как допуск к собеседованию. Можно, например, не засчитывать те вопросы, где студент угадал, если он не может показать решение задачи на бумаге.