File: net\System\Net\NetworkInformation\IPGlobalProperties.cs
Project: ndp\fx\src\System.csproj (System)

using System;
using System.Net.Sockets;
using System.Net;
using System.Threading.Tasks;
using System.Security.Permissions;
using System.Diagnostics.CodeAnalysis;
 
namespace System.Net.NetworkInformation
{
 
    public abstract class IPGlobalProperties
    {
        public static IPGlobalProperties GetIPGlobalProperties()
        {
            (new NetworkInformationPermission(NetworkInformationAccess.Read)).Demand();
            return new SystemIPGlobalProperties();
        }
 
        internal static IPGlobalProperties InternalGetIPGlobalProperties()
        {
            return new SystemIPGlobalProperties();
        }
 
        /// Gets the Active Udp Listeners on this machine
        public abstract IPEndPoint[] GetActiveUdpListeners();
                
        /// Gets the Active Tcp Listeners on this machine
        public abstract IPEndPoint[] GetActiveTcpListeners ();
 
        /// Gets the Active Udp Listeners on this machine
        public abstract TcpConnectionInformation[] GetActiveTcpConnections();
 
        /// Gets the Dynamic Host Configuration Protocol (DHCP) scope name.
        public abstract string DhcpScopeName {get;}
 
        /// Gets the domain in which the local computer is registered.
        
        public abstract string DomainName {get;}
 
        /// Gets the host name for the local computer.
        
        public abstract string HostName {get;}
 
        /// Gets a bool value that specifies whether the local computer is acting as a Windows Internet Name Service (WINS) proxy.
        public abstract bool IsWinsProxy {get;}
 
        /// Gets the Network Basic Input/Output System (NetBIOS) node type of the local computer.
        public abstract NetBiosNodeType NodeType{get;}
        
 
        public abstract TcpStatistics GetTcpIPv4Statistics();
 
        public abstract TcpStatistics GetTcpIPv6Statistics();
 
        /// Provides Internet Control Message Protocol (ICMP) version 4 statistical data for the local computer.
        /// Provides User Datagram Protocol (UDP) statistical data for the local computer.
        
        public abstract UdpStatistics GetUdpIPv4Statistics();
        public abstract UdpStatistics GetUdpIPv6Statistics();
        
        /// Provides Internet Control Message Protocol (ICMP) version 4 statistical data for the local computer.
        
        public abstract IcmpV4Statistics GetIcmpV4Statistics();
 
        /// Provides Internet Control Message Protocol (ICMP) version 6 statistical data for the local computer.
        
        public abstract IcmpV6Statistics GetIcmpV6Statistics();    
 
        /// Provides Internet Protocol (IP) statistical data for the local computer.
        public abstract IPGlobalStatistics GetIPv4GlobalStatistics();    
        public abstract IPGlobalStatistics GetIPv6GlobalStatistics();
 
        /// Returns a list of all unicast IP addresses after ensuring they are all stable
        public virtual UnicastIPAddressInformationCollection GetUnicastAddresses()
        {
            throw ExceptionHelper.MethodNotImplementedException;
        }
 
        public virtual IAsyncResult BeginGetUnicastAddresses(AsyncCallback callback, object state)
        {
            throw ExceptionHelper.MethodNotImplementedException;
        }
 
        public virtual UnicastIPAddressInformationCollection EndGetUnicastAddresses(IAsyncResult asyncResult)
        {
            throw ExceptionHelper.MethodNotImplementedException;
        }
 
        //************* Task-based async public methods *************************
        [HostProtection(ExternalThreading = true)]
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Unicast")]
        public virtual Task<UnicastIPAddressInformationCollection> GetUnicastAddressesAsync()
        {
            return Task<UnicastIPAddressInformationCollection>.Factory.FromAsync(BeginGetUnicastAddresses, EndGetUnicastAddresses, null);
        }
 
    }    
}