using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.NetworkInformation; using System.Net.Sockets; using System.Threading.Tasks; using System.Windows.Forms; using Netch.Controllers; using Netch.Forms; using Netch.Models; namespace Netch { public static class Global { /// /// 换行 /// public const string EOF = "\r\n"; public static readonly string NetchDir = Application.StartupPath; /// /// 主窗体的静态实例 /// public static MainForm MainForm; public static class Flags { static Flags() { Task.Run(() => { SupportFakeDns = new TUNTAPController().TestFakeDNS(); IsWindows10Upper = Environment.OSVersion.Version.Major >= 10; }); } public static bool SupportFakeDns; public static bool IsWindows10Upper; } /// /// 出口适配器 /// public static class Outbound { /// /// 索引 /// public static int Index = -1; /// /// 地址 /// public static IPAddress Address => Adapter.GetIPProperties().UnicastAddresses.First(ip => ip.Address.AddressFamily == AddressFamily.InterNetwork).Address; /// /// 网关 /// public static IPAddress Gateway; public static NetworkInterface Adapter; } /// /// TUN/TAP 适配器 /// public static class TUNTAP { /// /// 适配器 /// public static NetworkInterface Adapter; /// /// 索引 /// public static int Index = -1; /// /// 组件 ID /// public static string ComponentID = string.Empty; } /// /// 用于读取和写入的配置 /// public static Setting Settings = new Setting(); /// /// 用于存储模式 /// public static readonly List Modes = new List(); } }