How to retrieve network adapter and locality information (XAML)
This topic demonstrates how to retrieve a LanIdentifier and access information that can be used to determine the location of a network adapter within the network infrastructure. The Network Information sample demonstrates this functionality.
A LanIdentifier object defines methods an app uses to retrieve infrastructure/port ID values for determining location, and the ID value associated with the network adapter itself, which is accessed via a ConnectionProfile to show association with a network connection.
What you need to know
Technologies
Prerequisites
The following examples use C# or C++ and are based on the Network information sample. For general help creating a Windows Runtime app using C# or Visual Basic, see Create your first Windows Runtime app using C# or Visual Basic. For general help creating a Windows Runtime app using C++, see Create your first Windows Runtime app using C++.
Retrieve all LanIdentifiers
Call NetworkInformation.GetLanIdentifiers method to retrieve each LanIdentifier. Each object is then passed to GetLanIdentifierData, defined in the next section, to access and display the individual property values.
using Windows.Networking.Connectivity;
void DisplayLanIdentifiers(object sender)
{
string lanIdentifierData = string.Empty;
var lanIdentifiers = NetworkInformation.GetLanIdentifiers();
if (lanIdentifiers.Count != 0)
{
lanIdentifierData = "Number of Lan Identifiers retrieved: " + lanIdentifiers.Count + "\n";
lanIdentifierData += "=============================================\n";
for (var i = 0; i < lanIdentifiers.Count; i++)
{
//Display Lan Identifier data for each identifier
lanIdentifierData += GetLanIdentifierData(lanIdentifiers[i]);
lanIdentifierData += "------------------------------------------------\n";
}
LanIdentifiers.Text = lanIdentifierData;
}
else
{
LanIdentifiers.Text = "No Lan Identifier Data found";
}
}
Display the properties of a LanIdentifier object
In the example provided above, each LanIdentifier is passed to GetLanIdentifier to display object data. Our next example defines GetLanIdentifier, which first verifies if an object property has a set value, and if it does, displays the value as a string.
using Windows.Networking.Connectivity;
string GetLanIdentifierData(LanIdentifier lanIdentifier)
{
string lanIdentifierData = string.Empty;
if (lanIdentifier == null)
{
return lanIdentifierData;
}
if (lanIdentifier.InfrastructureId != null)
{
lanIdentifierData += "Infrastructure Type: " + lanIdentifier.InfrastructureId.Type + "\n";
lanIdentifierData += "Infrastructure Value: ";
var infrastructureIdValue = lanIdentifier.InfrastructureId.Value;
foreach (var value in infrastructureIdValue)
{
lanIdentifierData += value + " ";
}
}
if (lanIdentifier.PortId != null)
{
lanIdentifierData += "\nPort Type : " + lanIdentifier.PortId.Type + "\n";
lanIdentifierData += "Port Value: ";
var portIdValue = lanIdentifier.PortId.Value;
foreach (var value in portIdValue)
{
lanIdentifierData += value + " ";
}
}
if (lanIdentifier.NetworkAdapterId != null)
{
lanIdentifierData += "\nNetwork Adapter Id : " + lanIdentifier.NetworkAdapterId + "\n";
}
return lanIdentifierData;
}
Related topics
Other
Create your first Windows Runtime app using C# or Visual Basic
Create your first Windows Runtime app using C++
How to handle exceptions in network apps
How to manage metered network cost constraints
How to manage network connection events and changes in availability
How to retrieve network connection information
How to retrieve network connection usage data
Reference
NetworkInformation.GetLanIdentifiers
Windows.Networking.Connectivity
Samples