Files
Dec2017-Script-Dump/System/Net/NetworkInformation/Win32IPAddressCollection.cs
T
2026-06-04 11:42:34 +02:00

97 lines
3.2 KiB
C#

using System;
using System.Runtime.InteropServices;
namespace System.Net.NetworkInformation
{
// Token: 0x0200015D RID: 349
internal class Win32IPAddressCollection : IPAddressCollection
{
// Token: 0x06000BBD RID: 3005 RVA: 0x00023F28 File Offset: 0x00022128
private Win32IPAddressCollection()
{
}
// Token: 0x06000BBE RID: 3006 RVA: 0x00023F30 File Offset: 0x00022130
public Win32IPAddressCollection(params IntPtr[] heads)
{
foreach (IntPtr intPtr in heads)
{
this.AddSubsequentlyString(intPtr);
}
this.is_readonly = true;
}
// Token: 0x06000BBF RID: 3007 RVA: 0x00023F6C File Offset: 0x0002216C
public Win32IPAddressCollection(params Win32_IP_ADDR_STRING[] al)
{
foreach (Win32_IP_ADDR_STRING win32_IP_ADDR_STRING in al)
{
if (!string.IsNullOrEmpty(win32_IP_ADDR_STRING.IpAddress))
{
this.Add(IPAddress.Parse(win32_IP_ADDR_STRING.IpAddress));
this.AddSubsequentlyString(win32_IP_ADDR_STRING.Next);
}
}
this.is_readonly = true;
}
// Token: 0x06000BC1 RID: 3009 RVA: 0x00024004 File Offset: 0x00022204
public static Win32IPAddressCollection FromAnycast(IntPtr ptr)
{
Win32IPAddressCollection win32IPAddressCollection = new Win32IPAddressCollection();
IntPtr intPtr = ptr;
while (intPtr != IntPtr.Zero)
{
Win32_IP_ADAPTER_ANYCAST_ADDRESS win32_IP_ADAPTER_ANYCAST_ADDRESS = (Win32_IP_ADAPTER_ANYCAST_ADDRESS)Marshal.PtrToStructure(intPtr, typeof(Win32_IP_ADAPTER_ANYCAST_ADDRESS));
win32IPAddressCollection.Add(win32_IP_ADAPTER_ANYCAST_ADDRESS.Address.GetIPAddress());
intPtr = win32_IP_ADAPTER_ANYCAST_ADDRESS.Next;
}
win32IPAddressCollection.is_readonly = true;
return win32IPAddressCollection;
}
// Token: 0x06000BC2 RID: 3010 RVA: 0x00024068 File Offset: 0x00022268
public static Win32IPAddressCollection FromDnsServer(IntPtr ptr)
{
Win32IPAddressCollection win32IPAddressCollection = new Win32IPAddressCollection();
IntPtr intPtr = ptr;
while (intPtr != IntPtr.Zero)
{
Win32_IP_ADAPTER_DNS_SERVER_ADDRESS win32_IP_ADAPTER_DNS_SERVER_ADDRESS = (Win32_IP_ADAPTER_DNS_SERVER_ADDRESS)Marshal.PtrToStructure(intPtr, typeof(Win32_IP_ADAPTER_DNS_SERVER_ADDRESS));
win32IPAddressCollection.Add(win32_IP_ADAPTER_DNS_SERVER_ADDRESS.Address.GetIPAddress());
intPtr = win32_IP_ADAPTER_DNS_SERVER_ADDRESS.Next;
}
win32IPAddressCollection.is_readonly = true;
return win32IPAddressCollection;
}
// Token: 0x06000BC3 RID: 3011 RVA: 0x000240CC File Offset: 0x000222CC
private void AddSubsequentlyString(IntPtr head)
{
IntPtr intPtr = head;
while (intPtr != IntPtr.Zero)
{
Win32_IP_ADDR_STRING win32_IP_ADDR_STRING = (Win32_IP_ADDR_STRING)Marshal.PtrToStructure(intPtr, typeof(Win32_IP_ADDR_STRING));
this.Add(IPAddress.Parse(win32_IP_ADDR_STRING.IpAddress));
intPtr = win32_IP_ADDR_STRING.Next;
}
}
// Token: 0x170002F3 RID: 755
// (get) Token: 0x06000BC4 RID: 3012 RVA: 0x00024120 File Offset: 0x00022320
public override bool IsReadOnly
{
get
{
return this.is_readonly;
}
}
// Token: 0x04000B9E RID: 2974
public static readonly Win32IPAddressCollection Empty = new Win32IPAddressCollection(new IntPtr[] { IntPtr.Zero });
// Token: 0x04000B9F RID: 2975
private bool is_readonly;
}
}