• About Us
  • Blog
  • Basket
  • Account
  • Sign In
  •  

Blog

List of all Web Enabled Devices and Associated Browsers

Published on Thursday, June 18, 2015

List of all Web Enabled Devices and Associated Browsers

Use the 51Degrees .NET API to return meta data about device combinations

Many 51Degrees customers are using the consistent and high quality meta data within 51Degrees to drive related reporting solutions and user interfaces. This blog post contains a short C# code snippet for returning related unique combinations of meta data values. It's intended to show how easy such queries are to produce in .NET with 51Degrees and provide example code for those wishing to access device meta data.

Overview

The following code uses a 51Degrees Premium or Enterprise data file to produce a CSV file containing unique combinations of Hardware Vendor, Hardware Model and Browser Name. Other properties available within the data file can also be used. See Property Dictionary for a full list.

Initially the 51Degrees data set is loaded and the properties for vendor, model and browser are retrieved to improve the performance of the subsequent Linq statement. A Linq Select and Distinct state are used with an anonymous class to provide a de-duplicated list from all the Signatures (User-Agents with the irrelevant characters removed - see How Pattern Detection Works) in the data set. The unique list is written to a CSV file.

Source Code Snippet

using (var dataSet = MemoryFactory.Create(deviceDataFile.FullName))
{
	using (var writer = File.CreateText(Path.Combine(
		DATA_PATH, "Combinations.txt")))
	{
		// Get the properties for speedier look up.
		var vendor = dataSet.Properties;
		var model = dataSet.Properties;
		var browser = dataSet.Properties;

		// Get the grouping needed by vendor, model and name.
		var uniqueCombinations = dataSet.Signatures.Select(s => new
				{
					Vendor = s[vendor].ToString(),
					Model = s[model].ToString(),
					Name = s[browser].ToString()
				}).Distinct();

		// Write the aggregated data to the output file path.
		writer.WriteLine("HardwareVendor,HardwareModel,BrowserName");
		foreach (var i in uniqueCombinations)
		{
			writer.WriteLine(String.Join(",", i.Vendor, i.Model, i.Name));
		}
	}
}

The full Visual Studio 2013 can be downloaded from this blog post.

Download Source Code

Output

A few records from the resulting CSV output are shown below.

HardwareVendorHardwareModelBrowserName
AudiovoxPM8920KITOpenwave
AudiovoxSMT5600Unknown
AudiovoxSMT5600Internet Explorer Mobile
ALCATEL ONE TOUCHOT-665Obigo
ALCATEL ONE TOUCHOT-306Obigo
AcerE310Android
LenovoA288tAndroid
CoolPad8070Android
ZTETU805Android

The example could easily be modified to return different fields, sort the output, or made more efficient by adding indexes to the resulting data sets. The key objective is to show just how easily meta data can be returned from the 51Degrees APIs.

Premium Licence Key

The HardwareVendor and HardwareModel fields are available in the 51Degrees Premium and Enterprise data sets. To access these fields with this demonstration a licence key or an evaluation version of 51Degrees will be required. Compare device data sets to find out more.

Start Free Trial Compare Data Options

Comments (0)

Author: Products Team

Categories: Development

Tags: C# , .NET

Documents to download

James Rosewell
>

Products Team

Other posts by Products Team
Contact author

Name:
Email:
Subject:
Message:
x

Tags

.NET 4G 51Degrees 5G Acer Adform Adtech Advertising Afilias Alcatel Amazon AMP Analysis Analytics Android Apache API Apple Asian Market ASP.NET Asus Blackberry Browser C C# Centro Chrome Cloud CMS CPU CSS3 Data Data Blog Data File Daydream Design Detection Developers Device Device Data Device Detection Device Intelligence Device Models Device property DeviceAtlas Disney dmexco DotNetNuke Download ebay Ericsson Event Facebook Firefox Foundation Framework Galaxy git repositories Google Google Analytics Google Daydream GPU GSMA Guess HAProxy Hash Trie HTC HTML5 HTTP HTTP Headers Huawei Infinix Ingeniux Internet usage iOS iOS 13 ipad iPadOS iPhone iPhone 11 Java Javascript Kentico LG Liferay LTE m.dot Memory Memory leak Meta Data Microsoft Mobile Mobile Analysis Mobile Analytics Mobile Devices Mobile Marketing Mixer Motorola Mozilla MWC MWC 2017 MWC16 Native Apps NET New Release News Nexus NFC NGINX Nokia OnePlus 5 Opera Operating System Oppo Optimisation OS Patent Performance PHP Press Release Price Band programmatic Publishers Python Redirection Research Responsive Images Responsive web design RESS Review RTB RWD Safari Samsung Scala ScientiaMobile SEO Server Server-side optimisation Seznam.cz Sitecore Smart TV Smartphone Smartwatches Sony Swedish Beers Tablet Tencent Testing Tips Tutorial Umbraco Update User Agent User-Agent Valgrind Varnish Varnish Cache Video Vodafone VoLTE Web Web Apps Web content management Webtrekk White Paper Widgets WiFi Windows WURFL Xiaomi Xperia ZTE