/// <summary> /// Gets a pcap stat object and calculate bps and pps /// </summary> public static void device_OnPcapStatistics(object sender, SharpPcap.WinPcap.StatisticsModeEventArgs e) { // Calculate the delay in microseconds from the last sample. // This value is obtained from the timestamp that's associated with the sample. ulong delay = (e.Statistics.Timeval.Seconds - oldSec) * 1000000 - oldUsec + e.Statistics.Timeval.MicroSeconds; // Get the number of Bits per second ulong bps = ((ulong)e.Statistics.RecievedBytes * 8 * 1000000) / delay; /* ^ ^ | | | | | | | converts bytes in bits -- | | | delay is expressed in microseconds -- */ // Get the number of Packets per second ulong pps = ((ulong)e.Statistics.RecievedPackets * 1000000) / delay; // Convert the timestamp to readable format var ts = e.Statistics.Timeval.Date.ToLongTimeString(); // Print Statistics Console.WriteLine("{0}: bps={1}, pps={2}", ts, bps, pps); //store current timestamp oldSec = e.Statistics.Timeval.Seconds; oldUsec = e.Statistics.Timeval.MicroSeconds; }
void FormMain_OnPcapStatistics(object sender, StatisticsModeEventArgs e) { }
private void update_statistics(object sender, StatisticsModeEventArgs e) { StatisticsModePacket statistics = e.Statistics; long delay = (long)((statistics.Timeval.Seconds - _oldseconds) * 1000000 + (statistics.Timeval.MicroSeconds - _oldmicroseconds)); _transferspeed = (statistics.RecievedBytes * 1000000) / delay / 1024; _message = format_message(_stopwatch.Elapsed, "Transferspeed", _transferspeed.ToString(), "kB/s"); this.callback.on_transfer_speed_change(_message, this.results); this.main_view.text_to_logs(_message); _oldseconds = statistics.Timeval.Seconds; _oldmicroseconds = statistics.Timeval.MicroSeconds; }
private static void getStatistics(object sender, StatisticsModeEventArgs stat) { StatisticsModePacket statistics = stat.Statistics; long delay = (long) ((statistics.Timeval.Seconds - oldSec) * 1000000 - oldUsec + statistics.Timeval.MicroSeconds); AllRecBytes += statistics.RecievedBytes; long bps = (statistics.RecievedBytes * 8 * 1000000) / delay; AllRecTcpUdpPackets += statistics.RecievedPackets; long pps = (statistics.RecievedPackets * 1000000) / delay; string ts = statistics.Timeval.Date.ToLongTimeString(); if (bps != 0 || pps != 0) { Console.WriteLine("{0}: bps={1}, pps={2}", ts, bps, pps); } if (maxbps < bps) maxbps = bps; if (maxpps < pps) maxpps = pps; oldSec = statistics.Timeval.Seconds; oldUsec = statistics.Timeval.MicroSeconds; }