private void ShowIPAddressCollection(System.Net.IPAddressCollection collection) { for (int i = 0; i < collection.Count; i++) { Emit(collection[i].ToString(true)); } }
public Enumerator(IPAddressCollection collection) { _collection = collection; _enumerator = -1; }
private void ShowIPAddresses(string label, System.Net.IPAddressCollection winsServers) { Emit("-----" + label + "-----"); ShowIPAddressCollection(winsServers); }
private static IPAddress[] GetLocalAddresses() { IPAddress[] addressArray; if (!ComNetOS.IsPostWin2K) { ArrayList list2 = new ArrayList(0x10); int num5 = 0; SafeLocalFree pAdapterInfo = null; uint pOutBufLen = 0; uint adaptersInfo = UnsafeNetInfoNativeMethods.GetAdaptersInfo(SafeLocalFree.Zero, ref pOutBufLen); while (adaptersInfo == 0x6f) { try { pAdapterInfo = SafeLocalFree.LocalAlloc((int)pOutBufLen); adaptersInfo = UnsafeNetInfoNativeMethods.GetAdaptersInfo(pAdapterInfo, ref pOutBufLen); if (adaptersInfo == 0) { IpAdapterInfo info = (IpAdapterInfo)Marshal.PtrToStructure(pAdapterInfo.DangerousGetHandle(), typeof(IpAdapterInfo)); while (true) { IPAddressCollection addresss = info.ipAddressList.ToIPAddressCollection(); num5 += addresss.Count; list2.Add(addresss); if (info.Next == IntPtr.Zero) { break; } info = (IpAdapterInfo)Marshal.PtrToStructure(info.Next, typeof(IpAdapterInfo)); } } continue; } finally { if (pAdapterInfo != null) { pAdapterInfo.Close(); } } } if ((adaptersInfo != 0) && (adaptersInfo != 0xe8)) { throw new NetworkInformationException((int)adaptersInfo); } addressArray = new IPAddress[num5]; uint num8 = 0; foreach (IPAddressCollection addresss2 in list2) { foreach (IPAddress address in addresss2) { addressArray[num8++] = address; } } return(addressArray); } ArrayList list = new ArrayList(0x10); int num = 0; SafeLocalFree adapterAddresses = null; GetAdaptersAddressesFlags flags = GetAdaptersAddressesFlags.SkipFriendlyName | GetAdaptersAddressesFlags.SkipDnsServer | GetAdaptersAddressesFlags.SkipMulticast | GetAdaptersAddressesFlags.SkipAnycast; uint outBufLen = 0; uint num3 = UnsafeNetInfoNativeMethods.GetAdaptersAddresses(AddressFamily.Unspecified, (uint)flags, IntPtr.Zero, SafeLocalFree.Zero, ref outBufLen); while (num3 == 0x6f) { try { adapterAddresses = SafeLocalFree.LocalAlloc((int)outBufLen); num3 = UnsafeNetInfoNativeMethods.GetAdaptersAddresses(AddressFamily.Unspecified, (uint)flags, IntPtr.Zero, adapterAddresses, ref outBufLen); if (num3 != 0) { continue; } IpAdapterAddresses addresses = (IpAdapterAddresses)Marshal.PtrToStructure(adapterAddresses.DangerousGetHandle(), typeof(IpAdapterAddresses)); Label_0075: if (addresses.FirstUnicastAddress != IntPtr.Zero) { UnicastIPAddressInformationCollection informations = SystemUnicastIPAddressInformation.ToAddressInformationCollection(addresses.FirstUnicastAddress); num += informations.Count; list.Add(informations); } if (!(addresses.next == IntPtr.Zero)) { addresses = (IpAdapterAddresses)Marshal.PtrToStructure(addresses.next, typeof(IpAdapterAddresses)); goto Label_0075; } continue; } finally { if (adapterAddresses != null) { adapterAddresses.Close(); } adapterAddresses = null; } } if ((num3 != 0) && (num3 != 0xe8)) { throw new NetworkInformationException((int)num3); } addressArray = new IPAddress[num]; uint num4 = 0; foreach (UnicastIPAddressInformationCollection informations2 in list) { foreach (IPAddressInformation information in informations2) { addressArray[num4++] = information.Address; } } return(addressArray); }