В JavaScript:
http://www.quirksmode.org/js/detect.html
Ни один метод не идеален, потому что пользователь всегда может подделать пользовательский агент.
Я бы порекомендовал:
1) Автоматическое перенаправление на страницу со ссылкой или автоматическое обновление ссылки на странице с текстом «Download for Mac» или «Download for Windows», чтобы пользователь знал что они получают, прежде чем щелкнуть.
2) По-прежнему дают пользователю возможность загрузить другую версию, если ваше обнаружение не работает в их случае, или если они хотят загрузить на удаленный компьютер и перенести его на другой компьютер позже.