Пример #1
0
        public static void AuthServer()
        {
            var portKnocking = new PortKnocking();
            var file         = Config.KnockFile;

            while (!file.EndOfStream)
            {
                var args = file.ReadLine()?.Split(" ".ToCharArray(), 3, StringSplitOptions.RemoveEmptyEntries);
                if (args != null && args.Length == 3 && ushort.TryParse(args[0], out var port) && int.TryParse(args[1], out var delay))
                {
                    portKnocking.AddPort(port, delay, args?[2]);
                }
            }
            portKnocking.KnockAll(new Uri(Config.ServerHostAddress)).Wait();
        }
Пример #2
0
        public static bool CheckUpdate()
        {
            PortKnocking.AuthServer();
            try
            {
                var client = new WebClient();
                var data   = client.DownloadData(Config.VersionInfoAddress);
                var des    = MOD.Deserialize <Info>(Encoding.Default.GetString(data));
                if (des.captureVersion == MOD.Version)
                {
                    $"Version {MOD.Version} Checked".Log();
                    return(true);
                }

                if (!File.Exists("CaptureAutoUpdate.exe"))
                {
                    "Downloading CaptureAutoUpdate!".Log();
                    client = new WebClient();
                    client.Headers.Add("myIP", GetMyIP());
                    "IpGetted".Log();
                    data = client.DownloadData(Config.AutoUpdateAddress);
                    if (data.Length == 0)
                    {
                        @"Download Error".Log();
                    }

                    File.WriteAllBytes("CaptureAutoUpdate.exe", data);
                }
            }
            catch
            {
                "Download Update Capture Error!".Log();
                return(false);
            }
            Process.Start("CaptureAutoUpdate.exe");
            Environment.Exit(0);
            return(false);
        }