private void SocketContext_PublicIpReceived(object sender, PublicIpEventArgs e)
        {
            ISearchPublicIpContext socketContext = sender as ISearchPublicIpContext;

            if (socketContext != null)
            {
                string currentIp = e.Ip;

                DateTime startTime = DateTime.Now;
                Logger.LogDebug($"Start Time: {startTime.ToLongDateTime()}");

                if (currentIp != CurrentIp)
                {
                    Client.UpdateDomainRecord(currentIp);

                    Logger.LogDebug($"Previous Time: {CurrentTime.ToLongDateTime()}");
                    Logger.LogDebug($"Previous IP: {CurrentIp}");
                }
                else
                {
                    Logger.LogDebug("IP address need not change");
                }

                //Update成功后才能把当前IP/Time存起来
                CurrentTime = startTime;
                CurrentIp   = currentIp;

                Logger.LogDebug($"Current Time: {CurrentTime.ToLongDateTime()}");
                Logger.LogDebug($"Current IP: {CurrentIp}");

                Logger.LogDebug($"End Time: {DateTime.Now.ToLongDateTime()}");
                Logger.LogDebug(string.Empty);
                Logger.LogDebug(string.Empty);
            }
        }
 public void Start()
 {
     Task.Factory.StartNew(() =>
     {
         //timer定时器
         _timer = new Timer((param) =>
         {
             try
             {
                 Logger.LogDebug("============================================================");
                 ISearchPublicIpContext socketContext = IocManager.Instance.GetRequiredService <ISearchPublicIpContext>();
                 socketContext.PublicIpReceived      += SocketContext_PublicIpReceived;
                 socketContext.SearchPublicIp();
                 Logger.LogDebug("============================================================");
                 Logger.LogDebug(string.Empty);
                 Logger.LogDebug(string.Empty);
             }
             catch (Exception ex)
             {
                 Logger.LogDebug(0, ex, "Start Method Error");
             }
         }, this, 0, Options.Config.IntervalMillisecond);
     });
 }