60 lines
2.5 KiB
C#
60 lines
2.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace System.Net.NetworkInformation
|
|
{
|
|
// Token: 0x0200019C RID: 412
|
|
internal class MulticastIPAddressInformationImplCollection : MulticastIPAddressInformationCollection
|
|
{
|
|
// Token: 0x06000DD0 RID: 3536 RVA: 0x00026C3C File Offset: 0x00024E3C
|
|
private MulticastIPAddressInformationImplCollection(bool isReadOnly)
|
|
{
|
|
this.is_readonly = isReadOnly;
|
|
}
|
|
|
|
// Token: 0x17000480 RID: 1152
|
|
// (get) Token: 0x06000DD2 RID: 3538 RVA: 0x00026C5C File Offset: 0x00024E5C
|
|
public override bool IsReadOnly
|
|
{
|
|
get
|
|
{
|
|
return this.is_readonly;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000DD3 RID: 3539 RVA: 0x00026C64 File Offset: 0x00024E64
|
|
public static MulticastIPAddressInformationCollection Win32FromMulticast(IntPtr ptr)
|
|
{
|
|
MulticastIPAddressInformationImplCollection multicastIPAddressInformationImplCollection = new MulticastIPAddressInformationImplCollection(false);
|
|
IntPtr intPtr = ptr;
|
|
while (intPtr != IntPtr.Zero)
|
|
{
|
|
Win32_IP_ADAPTER_MULTICAST_ADDRESS win32_IP_ADAPTER_MULTICAST_ADDRESS = (Win32_IP_ADAPTER_MULTICAST_ADDRESS)Marshal.PtrToStructure(intPtr, typeof(Win32_IP_ADAPTER_MULTICAST_ADDRESS));
|
|
multicastIPAddressInformationImplCollection.Add(new MulticastIPAddressInformationImpl(win32_IP_ADAPTER_MULTICAST_ADDRESS.Address.GetIPAddress(), win32_IP_ADAPTER_MULTICAST_ADDRESS.LengthFlags.IsDnsEligible, win32_IP_ADAPTER_MULTICAST_ADDRESS.LengthFlags.IsTransient));
|
|
intPtr = win32_IP_ADAPTER_MULTICAST_ADDRESS.Next;
|
|
}
|
|
multicastIPAddressInformationImplCollection.is_readonly = true;
|
|
return multicastIPAddressInformationImplCollection;
|
|
}
|
|
|
|
// Token: 0x06000DD4 RID: 3540 RVA: 0x00026CE4 File Offset: 0x00024EE4
|
|
public static MulticastIPAddressInformationImplCollection LinuxFromList(List<IPAddress> addresses)
|
|
{
|
|
MulticastIPAddressInformationImplCollection multicastIPAddressInformationImplCollection = new MulticastIPAddressInformationImplCollection(false);
|
|
foreach (IPAddress ipaddress in addresses)
|
|
{
|
|
multicastIPAddressInformationImplCollection.Add(new MulticastIPAddressInformationImpl(ipaddress, true, false));
|
|
}
|
|
multicastIPAddressInformationImplCollection.is_readonly = true;
|
|
return multicastIPAddressInformationImplCollection;
|
|
}
|
|
|
|
// Token: 0x04000C81 RID: 3201
|
|
public static readonly MulticastIPAddressInformationImplCollection Empty = new MulticastIPAddressInformationImplCollection(true);
|
|
|
|
// Token: 0x04000C82 RID: 3202
|
|
private bool is_readonly;
|
|
}
|
|
}
|