private List <string> ConfigureIpList(DicomNetIpTypeFlags ipType) { IPAddress[] addresses = Dns.GetHostAddresses(Dns.GetHostName()); List <string> addressesStringList = new List <string>(); List <string> addressesIpv4StringList = new List <string>(); List <string> addressesIpv6StringList = new List <string>(); foreach (IPAddress address in addresses) { if (address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { addressesIpv4StringList.Add(address.ToString()); } else if (address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6) { addressesIpv6StringList.Add(address.ToString()); } } View.CanIpV6CheckBox = addressesIpv6StringList.Count > 0; View.CanIpBothCheckBox = DemosGlobal.IsOnVistaOrLater && View.CanIpV6CheckBox; switch (ipType) { case DicomNetIpTypeFlags.Ipv4: // nothing break; case DicomNetIpTypeFlags.Ipv6: if (!View.CanIpV6CheckBox) { ipType = DicomNetIpTypeFlags.Ipv4; } break; case DicomNetIpTypeFlags.Ipv4OrIpv6: if (!View.CanIpBothCheckBox) { ipType = DicomNetIpTypeFlags.Ipv4; } break; } addressesStringList.Clear(); addressesStringList.Add("All"); if ((ipType & DicomNetIpTypeFlags.Ipv4) == DicomNetIpTypeFlags.Ipv4) { foreach (string s in addressesIpv4StringList) { if (s != "0.0.0.0") { addressesStringList.Add(s); } } } if ((ipType & DicomNetIpTypeFlags.Ipv6) == DicomNetIpTypeFlags.Ipv6) { foreach (string s in addressesIpv6StringList) { { addressesStringList.Add(s); } } } View.SetIpAddressList(addressesStringList.ToArray()); View.IpType = ipType; return(addressesStringList); }