Однозначного ответа на этот вопрос нет, да и быть не может. На текущий момент пользуюсь таким простецким решением.
[cit]function isNoMobile(){
# created by fstrange
# http://fstrange.ru/coder/about/
# icq: 176029789
$ua = str_replace('windows ce', '', strtolower($_SERVER['HTTP_USER_AGENT']));
$aNoMobile = array('windows','linux','bsd','x11','unix','macintosh','macos');
return in_array($ua, $aNoMobile) ? TRUE : FALSE;
}[/cit]