public void AddLogItem(PingLogItem pii)
 {
     pii.ID = TotalAttemps;
     PingLog.Add(pii);
     while (PingLog.Count > pingMemory)
     {
         PingLog.Remove(PingLog.OrderBy(i => i.ID).First());
     }
 }
Exemple #2
0
 private void PingHost(PingItem pi)
 {
     using (Ping pinger = new Ping())
     {
         string data = "";
         while (data.Length < numPacket.Value)
         {
             data += "a";
         }
         byte[]      buffer  = Encoding.ASCII.GetBytes(data);
         int         timeout = (int)numTicker.Value - 500;
         PingLogItem pii     = new PingLogItem();
         pi.pingMemory    = (int)numPingMem.Value;
         pi.TotalAttemps += 1;
         pii.PacketSize   = buffer.Length;
         pii.TimeOut      = timeout;
         try
         {
             PingReply reply = ConvertAndPingHost(pi.Host, pinger, timeout, buffer);
             pii.Message = reply == null ? "N/A" : reply.Status.ToString();
             if (reply != null)
             {
                 if (reply.Address != null)
                 {
                     pii.ReplyAddress = reply.Address.ToString();
                 }
                 if (reply.Status != IPStatus.Success)
                 {
                     pi.TotalFails += 1;
                     pii.Failed     = true;
                     pii.RoundTrip  = -1;
                 }
                 else
                 {
                     pii.RoundTrip = reply.RoundtripTime;
                 }
             }
             else
             {
                 pi.TotalFails += 1;
                 pii.Failed     = true;
                 pii.RoundTrip  = -1;
             }
         }
         catch (PingException pex)
         {
             pii.Message    = pex.Message;
             pi.TotalFails += 1;
             pii.Failed     = true;
             pii.RoundTrip  = -1;
         }
         pi.AddLogItem(pii);
         LogOutput(pi);
     }
 }
Exemple #3
0
        private void LogOutput(PingItem pi)
        {
            LogBuffer lb = new LogBuffer();
            //                           This failed if the input was null (Thomas)
            PingLogItem pii = pi.PingLog.Where(i => null != i).OrderByDescending(i => i.ID).First();

            if (pii.Failed)
            {
                string ip = "";
                foreach (var i in pi.DNSAddess)
                {
                    ip = ip == "" ? i : ";" + i;
                }
                lb.data = string.Format("\n{0} - {1} - {2} | Count: {3} | Fails: {4} | LastRT: {5} | AvgRT: {6} | PingIP: {7} | DnsIP: {8} | DNSHost: {9}",
                                        pii.TimeStamp, pi.Host, pii.Message, pi.TotalAttemps, pi.TotalFails, pii.RoundTrip, pi.AvgRoundTrip, pi.LastPingIP, ip, pi.DNSHostName);
                lb.name = pi.Host;
                Log.Add(lb);
            }
        }