Files
2026-06-04 11:42:34 +02:00

142 lines
3.5 KiB
C#

using System;
using System.Runtime.InteropServices;
namespace System.Net.NetworkInformation
{
// Token: 0x020001C1 RID: 449
internal class Win32UnicastIPAddressInformation : UnicastIPAddressInformation
{
// Token: 0x06000EB8 RID: 3768 RVA: 0x000292C4 File Offset: 0x000274C4
public Win32UnicastIPAddressInformation(int ifIndex, Win32_IP_ADAPTER_UNICAST_ADDRESS info)
{
this.if_index = ifIndex;
this.info = info;
}
// Token: 0x170004F3 RID: 1267
// (get) Token: 0x06000EB9 RID: 3769 RVA: 0x000292DC File Offset: 0x000274DC
public override IPAddress Address
{
get
{
return this.info.Address.GetIPAddress();
}
}
// Token: 0x170004F4 RID: 1268
// (get) Token: 0x06000EBA RID: 3770 RVA: 0x000292F0 File Offset: 0x000274F0
public override bool IsDnsEligible
{
get
{
return this.info.LengthFlags.IsDnsEligible;
}
}
// Token: 0x170004F5 RID: 1269
// (get) Token: 0x06000EBB RID: 3771 RVA: 0x00029304 File Offset: 0x00027504
public override bool IsTransient
{
get
{
return this.info.LengthFlags.IsTransient;
}
}
// Token: 0x170004F6 RID: 1270
// (get) Token: 0x06000EBC RID: 3772 RVA: 0x00029318 File Offset: 0x00027518
public override long AddressPreferredLifetime
{
get
{
return (long)((ulong)this.info.PreferredLifetime);
}
}
// Token: 0x170004F7 RID: 1271
// (get) Token: 0x06000EBD RID: 3773 RVA: 0x00029328 File Offset: 0x00027528
public override long AddressValidLifetime
{
get
{
return (long)((ulong)this.info.ValidLifetime);
}
}
// Token: 0x170004F8 RID: 1272
// (get) Token: 0x06000EBE RID: 3774 RVA: 0x00029338 File Offset: 0x00027538
public override long DhcpLeaseLifetime
{
get
{
return (long)((ulong)this.info.LeaseLifetime);
}
}
// Token: 0x170004F9 RID: 1273
// (get) Token: 0x06000EBF RID: 3775 RVA: 0x00029348 File Offset: 0x00027548
public override DuplicateAddressDetectionState DuplicateAddressDetectionState
{
get
{
return this.info.DadState;
}
}
// Token: 0x170004FA RID: 1274
// (get) Token: 0x06000EC0 RID: 3776 RVA: 0x00029358 File Offset: 0x00027558
public override IPAddress IPv4Mask
{
get
{
Win32_IP_ADAPTER_INFO adapterInfoByIndex = Win32NetworkInterface2.GetAdapterInfoByIndex(this.if_index);
if (adapterInfoByIndex == null)
{
throw new Exception("huh? " + this.if_index);
}
if (this.Address == null)
{
return null;
}
string text = this.Address.ToString();
Win32_IP_ADDR_STRING win32_IP_ADDR_STRING = adapterInfoByIndex.IpAddressList;
while (!(win32_IP_ADDR_STRING.IpAddress == text))
{
if (win32_IP_ADDR_STRING.Next == IntPtr.Zero)
{
return null;
}
win32_IP_ADDR_STRING = (Win32_IP_ADDR_STRING)Marshal.PtrToStructure(win32_IP_ADDR_STRING.Next, typeof(Win32_IP_ADDR_STRING));
}
return IPAddress.Parse(win32_IP_ADDR_STRING.IpMask);
}
}
// Token: 0x170004FB RID: 1275
// (get) Token: 0x06000EC1 RID: 3777 RVA: 0x00029410 File Offset: 0x00027610
public override PrefixOrigin PrefixOrigin
{
get
{
return this.info.PrefixOrigin;
}
}
// Token: 0x170004FC RID: 1276
// (get) Token: 0x06000EC2 RID: 3778 RVA: 0x00029420 File Offset: 0x00027620
public override SuffixOrigin SuffixOrigin
{
get
{
return this.info.SuffixOrigin;
}
}
// Token: 0x04000D21 RID: 3361
private int if_index;
// Token: 0x04000D22 RID: 3362
private Win32_IP_ADAPTER_UNICAST_ADDRESS info;
}
}