97 lines
3.2 KiB
C#
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;
|
|
}
|
|
}
|