/// <summary>
        /// Get a list of all local IP addresses currently avaliable
        /// </summary>
        /// <returns>All avaliable IP addreses for the local host, may be empty if no interfaces currently connected</returns>
        public static IEnumerable <IPAddress> LocalIPAddresses()
        {
            List <IPAddress> Addresses = new List <IPAddress>();

            if (IPAddressExtensions.IsConnected())
            {
                IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
                Addresses.AddRange(host.AddressList.Where(ip =>
                                                          ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork ||
                                                          ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6));
            }
            return(Addresses);
        }
 /// <summary>
 /// Return the first connected IPv6 address for the local host
 /// </summary>
 /// <returns>IPv6 address on first found internet connection for the local host</returns>
 public static IPAddress LocalIPv6Address()
 {
     return(IPAddressExtensions.LocalIPAddresses().Where(a => a.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6).FirstOrDefault());
 }
 /// <summary>
 /// Return the first connected IP address for the local host (may be IPv4 or IPv6)
 /// </summary>
 /// <returns>IP address on first found Internet connection on the local host</returns>
 public static IPAddress LocalIPAddress()
 {
     return(IPAddressExtensions.LocalIPAddresses().FirstOrDefault());
 }