UAParser
A user-agent parsing library based on BrowserScope’s UA database
Installation
Add
ua_parserto yourmix.exsdependencies:def deps do [{:ua_parser, "~> 1.0.0"}] endAdd
:ua_parserto your application dependencies:def application do [applications: [:ua_parser]] end
Usage
iex> ua = UAParser.parse("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Safari/530.17 Skyfire/2.0")
%UAParser.UA{
device: %UAParser.Device{family: nil},
family: "Skyfire",
os: %UAParser.OperatingSystem{
family: "Mac OS X",
version: %UAParser.Version{major: "10", minor: "5", patch: "7", patch_minor: nil}
},
version: %UAParser.Version{major: "2", minor: "0", patch: nil, patch_minor: nil}
}
iex> to_string(ua)
"Skyfire 2.0"
iex> to_string(ua.os)
"Mac OS X 10.5.7"
iex> to_string(ua.device)
"Other"Retrieving and parsing a user-agent string from Plug:
ua =
conn
|> Plug.Conn.get_req_header("user-agent")
|> List.first()
|> UAParser.parse()Contributing
Contributions are always welcome. We ask that contributors familiarize themselves with the CONTRIBUTING.md guide.
License
UAParser source code is released under Apache 2.0 License.
See LICENSE for more information.