154 lines
3.7 KiB
C#
154 lines
3.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Net.Sockets;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace System.Net.NetworkInformation
|
|
{
|
|
// Token: 0x020001A3 RID: 419
|
|
internal abstract class UnixNetworkInterface : NetworkInterface
|
|
{
|
|
// Token: 0x06000DF2 RID: 3570 RVA: 0x00026FE8 File Offset: 0x000251E8
|
|
internal UnixNetworkInterface(string name)
|
|
{
|
|
this.name = name;
|
|
this.addresses = new List<IPAddress>();
|
|
}
|
|
|
|
// Token: 0x06000DF3 RID: 3571
|
|
[DllImport("libc")]
|
|
private static extern int if_nametoindex(string ifname);
|
|
|
|
// Token: 0x06000DF4 RID: 3572 RVA: 0x00027004 File Offset: 0x00025204
|
|
public static int IfNameToIndex(string ifname)
|
|
{
|
|
return UnixNetworkInterface.if_nametoindex(ifname);
|
|
}
|
|
|
|
// Token: 0x06000DF5 RID: 3573 RVA: 0x0002700C File Offset: 0x0002520C
|
|
internal void AddAddress(IPAddress address)
|
|
{
|
|
this.addresses.Add(address);
|
|
}
|
|
|
|
// Token: 0x06000DF6 RID: 3574 RVA: 0x0002701C File Offset: 0x0002521C
|
|
internal void SetLinkLayerInfo(int index, byte[] macAddress, NetworkInterfaceType type)
|
|
{
|
|
this.index = index;
|
|
this.macAddress = macAddress;
|
|
this.type = type;
|
|
}
|
|
|
|
// Token: 0x06000DF7 RID: 3575 RVA: 0x00027034 File Offset: 0x00025234
|
|
public override PhysicalAddress GetPhysicalAddress()
|
|
{
|
|
if (this.macAddress != null)
|
|
{
|
|
return new PhysicalAddress(this.macAddress);
|
|
}
|
|
return PhysicalAddress.None;
|
|
}
|
|
|
|
// Token: 0x06000DF8 RID: 3576 RVA: 0x00027054 File Offset: 0x00025254
|
|
public override bool Supports(NetworkInterfaceComponent networkInterfaceComponent)
|
|
{
|
|
bool flag = networkInterfaceComponent == NetworkInterfaceComponent.IPv4;
|
|
bool flag2 = !flag && networkInterfaceComponent == NetworkInterfaceComponent.IPv6;
|
|
foreach (IPAddress ipaddress in this.addresses)
|
|
{
|
|
if (flag && ipaddress.AddressFamily == global::System.Net.Sockets.AddressFamily.InterNetwork)
|
|
{
|
|
return true;
|
|
}
|
|
if (flag2 && ipaddress.AddressFamily == global::System.Net.Sockets.AddressFamily.InterNetworkV6)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
// Token: 0x1700048C RID: 1164
|
|
// (get) Token: 0x06000DF9 RID: 3577 RVA: 0x00027104 File Offset: 0x00025304
|
|
public override string Description
|
|
{
|
|
get
|
|
{
|
|
return this.name;
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700048D RID: 1165
|
|
// (get) Token: 0x06000DFA RID: 3578 RVA: 0x0002710C File Offset: 0x0002530C
|
|
public override string Id
|
|
{
|
|
get
|
|
{
|
|
return this.name;
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700048E RID: 1166
|
|
// (get) Token: 0x06000DFB RID: 3579 RVA: 0x00027114 File Offset: 0x00025314
|
|
public override bool IsReceiveOnly
|
|
{
|
|
get
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700048F RID: 1167
|
|
// (get) Token: 0x06000DFC RID: 3580 RVA: 0x00027118 File Offset: 0x00025318
|
|
public override string Name
|
|
{
|
|
get
|
|
{
|
|
return this.name;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000490 RID: 1168
|
|
// (get) Token: 0x06000DFD RID: 3581 RVA: 0x00027120 File Offset: 0x00025320
|
|
public override NetworkInterfaceType NetworkInterfaceType
|
|
{
|
|
get
|
|
{
|
|
return this.type;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000491 RID: 1169
|
|
// (get) Token: 0x06000DFE RID: 3582 RVA: 0x00027128 File Offset: 0x00025328
|
|
[global::System.MonoTODO("Parse dmesg?")]
|
|
public override long Speed
|
|
{
|
|
get
|
|
{
|
|
return 1000000L;
|
|
}
|
|
}
|
|
|
|
// Token: 0x04000C93 RID: 3219
|
|
protected IPv4InterfaceStatistics ipv4stats;
|
|
|
|
// Token: 0x04000C94 RID: 3220
|
|
protected IPInterfaceProperties ipproperties;
|
|
|
|
// Token: 0x04000C95 RID: 3221
|
|
private string name;
|
|
|
|
// Token: 0x04000C96 RID: 3222
|
|
private int index;
|
|
|
|
// Token: 0x04000C97 RID: 3223
|
|
protected List<IPAddress> addresses;
|
|
|
|
// Token: 0x04000C98 RID: 3224
|
|
private byte[] macAddress;
|
|
|
|
// Token: 0x04000C99 RID: 3225
|
|
private NetworkInterfaceType type;
|
|
}
|
|
}
|