File: System\Net\NetworkInformation\IPInterfaceProperties.cs
Web Access
Project: src\src\libraries\System.Net.NetworkInformation\src\System.Net.NetworkInformation.csproj (System.Net.NetworkInformation)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System.Runtime.Versioning;
 
namespace System.Net.NetworkInformation
{
    /// <summary>
    /// Provides information about a network interface that supports Internet Protocol (IP).
    /// such as the addresses assigned to the adapter, and other DNS and routing-related information.
    /// </summary>
    public abstract class IPInterfaceProperties
    {
        /// <summary>
        /// Gets a bool value that indicates whether this interface is configured to send name resolution queries to a Domain Name System (DNS) server.
        /// </summary>
        [UnsupportedOSPlatform("android")]
        [UnsupportedOSPlatform("osx")]
        [UnsupportedOSPlatform("ios")]
        [UnsupportedOSPlatform("tvos")]
        [UnsupportedOSPlatform("freebsd")]
        public abstract bool IsDnsEnabled { get; }
 
        /// <summary>
        /// Gets the Domain Name System (DNS) suffix associated with this interface.
        /// </summary>
        [UnsupportedOSPlatform("android")]
        public abstract string DnsSuffix { get; }
 
        /// <summary>
        /// Gets a bool value that indicates whether this interface is configured to automatically register its IP address information with the Domain Name System (DNS).
        /// </summary>
        [SupportedOSPlatform("windows")]
        public abstract bool IsDynamicDnsEnabled { get; }
 
        /// <summary>
        /// The address identifies a single computer. Packets sent to a unicast address are sent to the computer identified by the address.
        /// </summary>
        public abstract UnicastIPAddressInformationCollection UnicastAddresses { get; }
 
        /// <summary>
        /// The address identifies multiple computers. Packets sent to a multicast address are sent to all computers identified by the address.
        /// </summary>
        public abstract MulticastIPAddressInformationCollection MulticastAddresses { get; }
 
        /// <summary>
        /// The address identifies multiple computers. Packets sent to an anycast address are sent to one of the computers identified by the address.
        /// </summary>
        [SupportedOSPlatform("windows")]
        public abstract IPAddressInformationCollection AnycastAddresses { get; }
 
        /// <summary>
        /// The address is that of a Domain Name Service (DNS) server for the local computer.
        /// </summary>
        [UnsupportedOSPlatform("android")]
        public abstract IPAddressCollection DnsAddresses { get; }
 
        /// <summary>
        /// Gets the network gateway addresses.
        /// </summary>
        [UnsupportedOSPlatform("android")]
        public abstract GatewayIPAddressInformationCollection GatewayAddresses { get; }
 
        /// <summary>
        /// Gets the addresses for Dynamic Host Configuration Protocol (DHCP) servers.
        /// </summary>
        [UnsupportedOSPlatform("android")]
        [UnsupportedOSPlatform("osx")]
        [UnsupportedOSPlatform("ios")]
        [UnsupportedOSPlatform("tvos")]
        [UnsupportedOSPlatform("freebsd")]
        public abstract IPAddressCollection DhcpServerAddresses { get; }
 
        /// <summary>
        /// Gets the list of Wins Servers registered with this interface
        /// </summary>
        [UnsupportedOSPlatform("android")]
        [UnsupportedOSPlatform("osx")]
        [UnsupportedOSPlatform("ios")]
        [UnsupportedOSPlatform("tvos")]
        [UnsupportedOSPlatform("freebsd")]
        public abstract IPAddressCollection WinsServersAddresses { get; }
 
        /// <summary>
        /// Gets the IP version 4.0 specific properties for this network interface.
        /// </summary>
        /// <returns>The interface' IPv4-specific properties.</returns>
        public abstract IPv4InterfaceProperties GetIPv4Properties();
 
        /// <summary>
        /// Gets the IP version 6.0 specific properties for this network interface.
        /// </summary>
        /// <returns>The interface' IPv6-specific properties.</returns>
        public abstract IPv6InterfaceProperties GetIPv6Properties();
    }
}