Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Yauaa: Yet Another User Agent Analyzer

Build Status NuGet License Donations via PayPal

This is a .NET porting of Java library that tries to parse and analyze the useragent string and extract as many relevant attributes as possible.

You can see the original project at this link:

The library has been completely rewritten in C# from scratch to be optimized and .NET friendly

A bit more background about this useragent parser can be found in this blog which the author Niels Basjes wrote about it:

The Java documentation can be found here, soon will be provided a .NET documentation specific for this project

You can download the .nuget package there:

Example output

As an example the useragent of a phone:

Mozilla/5.0 (Linux; Android 7.0; Nexus 6 Build/NBD90Z) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.124 Mobile Safari/537.36

is converted into this set of fields:

Field name Value
DeviceClass 'Phone'
DeviceName 'Google Nexus 6'
DeviceBrand 'Google'
OperatingSystemClass 'Mobile'
OperatingSystemName 'Android'
OperatingSystemVersion '7.0'
OperatingSystemNameVersion 'Android 7.0'
OperatingSystemVersionBuild 'NBD90Z'
LayoutEngineClass 'Browser'
LayoutEngineName 'Blink'
LayoutEngineVersion '53.0'
LayoutEngineVersionMajor '53'
LayoutEngineNameVersion 'Blink 53.0'
LayoutEngineNameVersionMajor 'Blink 53'
AgentClass 'Browser'
AgentName 'Chrome'
AgentVersion '53.0.2785.124'
AgentVersionMajor '53'
AgentNameVersion 'Chrome 53.0.2785.124'
AgentNameVersionMajor 'Chrome 53'

Try it!

You can try it online with an ASP.NET demo at this link:

Or you can download the .nuget package to it try by yourself:

Here you can also find a sample implementation project:


If you like this project or if has business value for you then don't hesitate to support me or the author.

To support the original project you can make a small donation to: Donations via PayPal Niels Basjes, Original Author

To support this porting, don't esitate to contribute to code sending a Pull request or with reporting issues

Follow here the contrubution guidlines:

Otherwise a small paypal donation can also be apreciated Donations via PayPal Stefano Balzarotti, Author of porting

Don't forget to be thankful to the original author Nicolaas Basjes, because he did most of the effort.


Yet Another UserAgent Analyzer for .NET Standard
Porting realized by Balzarotti Stefano, Copyright (C) OrbintSoft

Original Author and License:

Yet Another UserAgent Analyzer
Copyright (C) 2013-2019 Niels Basjes

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.