Меня скорее интересует вообще возможность узнать, бот это или нет
Это сложная задача, если стандартные боты, типа гугла или Яндекса, то они имеют информацию о useragent соответсвующие, а если ещё левые какие боты, то их сигнатуру уже сложнее вычислять, т.к. многие маскируются под реальных пользователей. Опять же тут множество решений, antibot, антикраулер и пр. Зачастую наблюдают за пользователем, как он ведёт себя на сайте, двигает мышкой или сразу вызывает события дом узлов. Это целый спектр мероприятий, где одним решением не обойтись.