using VirtualDDNSRouter.Client.Helpers; var settings = await Helpers.GetSettings(); using var cts = new CancellationTokenSource(); Console.CancelKeyPress += (s, e) => { Console.WriteLine("Shutdown requested…"); e.Cancel = true; cts.Cancel(); }; var timer = new PeriodicTimer(TimeSpan.FromMinutes(settings.RefreshIntervalMinutes)); var client = new HttpClient { Timeout = TimeSpan.FromSeconds(10) }; var request = new HttpRequestMessage(HttpMethod.Get, new Uri($"{settings.Host}/setip/{settings.Path}/{settings.DestinationPort}/{settings.ApiKey}")); while (await timer.WaitForNextTickAsync()) { if (cts.IsCancellationRequested) break; var response = await client.SendAsync(request, cts.Token); if (response.IsSuccessStatusCode) Console.WriteLine("[INFO] IP address updated at " + DateTime.Now.ToString("HH:mm:ss")); else Console.WriteLine("[ERROR] IP address update failed at " + DateTime.Now.ToString("HH:mm:ss")); }