I have a bot I wrote to help me with various web tasks that are too tedious manually. I just tested it against this and it says "isbot: false".
edit: looks like it only detects bots that overtly identify themselves as bots, e.g. Googlebot -- it's designed to identify clients, not as some sort of security device
It’s all well and good but you really shouldn’t be relying on the user agent string for much more than identifying bots who wish to be known.
PHP made it to the front page!
Many years ago (pre-smartphone), there was a Java library, written by an Italian chap, that did pretty much the same thing. Don’t remember the name. This appears to use the same approach. I think they had a PHP version, but that was a long time ago. I know it was several megabytes, which was huge, in those days.
Did what it said on the tin, but did so, by maintaining a huge list of individual devices and their characteristics. At the time, I chose not to use it (I was developing a [c]WAP server), but it had a number of supporters, and its maintainer was pretty sharp, and quite dedicated.
These days, there’s an order of magnitude more devices, and a much greater variety. Big job.
If you're looking for a Ruby implementation based on the same underlying user-agent parsing data, here you go: https://github.com/podigee/device_detector
I'm just curious — what could be a potential use case for such things on the backend? For bot detection, it seems quite unreliable. Would it be more suitable for server-side rendered UIs? Or am I missing something?
Good tool. I wish Google had gone even further with Chrome in reducing the information in the user agent. It seems like user agent is primarily used as a browser fingerprinting signal.
I need a way to detect the screen DPI from the user agent, so I can return higher resolution images only to devices that can use them. I realize detecting that based on user agent may not always be accurate, but surely it could work the vast majority of the time. Does anybody know of a lib that implements that on NodeJS?
Does something similar exist for python or node.js ?
If not I would like to contribute to that as an open source.
i was need something similar for golang and i try to use regexes in those projects, but in eye of performance it wasnt good enough. sometimes i wish to understand more deeply regexes.
it maybe another way to speed up for golang like prefix tree instead of using regexes, any one know a something similar for golang?
The reverse would also be handy. Device-pretender: Universal comprehensive User Agent from pretender library.
I've got a more limited and performant library I maintain. It frequently comes in first in speed comparisons.
It can only tell you things actually included in the UA string itself as it's just be a parser and not a "knowledge engine"
https://github.com/donatj/PhpUserAgent