Обычно вы используете заголовок User-Agent для обнаружения браузера.
Вот код JavaScript, который в основном это делает (хотя только для основных браузеров, вам нужно добавить Mobile User-Agents)
http://www.quirksmode.org/js/detect.html
А вот список идентификаторов мобильных браузеров
http://www.zytrax.com/tech/web/mobile_ids.html
Список не является полным и никогда не будет, учитывая скорость появления новых мобильных телефонов на рынке, но когда я сделал это, я сделал, чтобы сохранить все полученные пользовательские агенты в базе данных, а затем искать их для классификации они как мобильные и какой марки / модели.
Хотя вы не можете полагаться на JavaScript, это лучше сделать в коде сервера (не все мобильные браузеры выполняют JavaScript).
Здесь есть вопрос, связанный с SO, но я не смог его найти.