Пример #1
0
 public LatencyPage()
 {
     InitializeComponent();
     DataContext = new LatencyViewModel();
     Unloaded   += OnUnload;
 }
Пример #2
0
        public async Task <JsonResult <LatencyViewModel> > Get(string urlOrIp)
        {
            LatencyViewModel latency = new LatencyViewModel();

            latency.UrlOrIp = urlOrIp;
            latency.Status  = "Unknown";

            string latencyApiTester = string.Format("http://api.hackertarget.com/nping/?q={0}", urlOrIp);

            try
            {
                //WebRequest request = WebRequest.Create(latencyApiTester);
                //HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                //string responseFromServer = string.Empty;

                //using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                //{
                //    responseFromServer = reader.ReadToEnd();
                //}

                //IList<string> lineItems = responseFromServer
                //    .Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
                //    .ToList();

                //latency.Statistics = lineItems
                //    .Where(line =>
                //        !string.IsNullOrEmpty(line) &&
                //        line.ToLower().Contains("max rtt:")
                //    )
                //   .SelectMany(line => line.Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries))
                //   .Select(latencyEntry =>
                //   {
                //       string[] segments = latencyEntry.Split(":".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

                //       if ((segments != null) && (segments.Count() < 2))
                //           return new StatisticField();

                //       return new StatisticField
                //       {
                //           Name = segments[0],
                //           Value = segments[1]
                //       };
                //   })
                //   .ToList();

                //latency.Status = latency
                //    .Statistics
                //    .Where(field => (field != null) && (!string.IsNullOrEmpty(field.Name)) && (field.Name.ToLower().Contains("avg")))
                //    .DefaultIfEmpty(new StatisticField { Name = "", Value = "" })
                //    .Select(field =>
                //    {
                //        string valueString = field.Value.Trim();

                //        if (string.IsNullOrEmpty(valueString))
                //            return "Unknown";

                //        valueString = Regex.Replace(valueString, "[^0-9.]", "");

                //        decimal latencyValue = 0M;

                //        if (!decimal.TryParse(valueString, out latencyValue))
                //            return "Unknown";

                //        return GetLatencyStatus(latencyValue);
                //    })
                //    .FirstOrDefault();

                var rnd = new Random(DateTime.Now.Millisecond);
                int randomLatencyValue = rnd.Next(0, 350);

                latency.Status = GetLatencyStatus(randomLatencyValue);
            }
            catch
            {
            }

            return(Json(latency));
        }