Nowadays I can recommend the database from http://user-agent-string.info. You can identify the User-Agent as well as the operating system (if available).
I'm developing the Java library UADetector and merging every month a new version of the database (a.k.a. UAS file), available in XML and INI format. Therefore, I can say from my experience that this data is kept up to date. The usual update intervals is between 5 to 10 days.