60 lines
1.7 KiB
C#
60 lines
1.7 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
using System.Net.NetworkInformation;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Bunifu.Licensing.Helpers
|
|
{
|
|
// Token: 0x02000037 RID: 55
|
|
[DebuggerStepThrough]
|
|
internal sealed class Network
|
|
{
|
|
// Token: 0x06000263 RID: 611
|
|
[DllImport("wininet.dll")]
|
|
private static extern bool InternetGetConnectedState(out int Description, int ReservedValue);
|
|
|
|
// Token: 0x06000264 RID: 612 RVA: 0x00017938 File Offset: 0x00015B38
|
|
public static bool IsAvailable()
|
|
{
|
|
int num;
|
|
return Network.InternetGetConnectedState(out num, 0);
|
|
}
|
|
|
|
// Token: 0x06000265 RID: 613 RVA: 0x00017954 File Offset: 0x00015B54
|
|
public static bool IsAvailable(long minimumSpeed)
|
|
{
|
|
bool flag = !NetworkInterface.GetIsNetworkAvailable();
|
|
bool flag2;
|
|
if (flag)
|
|
{
|
|
flag2 = false;
|
|
}
|
|
else
|
|
{
|
|
foreach (NetworkInterface networkInterface in NetworkInterface.GetAllNetworkInterfaces())
|
|
{
|
|
bool flag3 = networkInterface.OperationalStatus != OperationalStatus.Up || networkInterface.NetworkInterfaceType == NetworkInterfaceType.Loopback || networkInterface.NetworkInterfaceType == NetworkInterfaceType.Tunnel;
|
|
if (!flag3)
|
|
{
|
|
bool flag4 = networkInterface.Speed < minimumSpeed;
|
|
if (!flag4)
|
|
{
|
|
bool flag5 = networkInterface.Description.IndexOf("virtual", StringComparison.OrdinalIgnoreCase) >= 0 || networkInterface.Name.IndexOf("virtual", StringComparison.OrdinalIgnoreCase) >= 0;
|
|
if (!flag5)
|
|
{
|
|
bool flag6 = networkInterface.Description.Equals("Microsoft Loopback Adapter", StringComparison.OrdinalIgnoreCase);
|
|
if (!flag6)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flag2 = false;
|
|
}
|
|
return flag2;
|
|
}
|
|
}
|
|
}
|