Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Tshark
- {
- public int _interfaceNumber;
- public string _pcapPath;
- public int _test;
- public int _packetsCount;
- public string _packet;
- public delegate void dlgPackProgress(int progress);
- public event dlgPackProgress evePacketProgress;
- public Tshark(int interfaceNumber, string pcapPath)
- {
- _interfaceNumber = interfaceNumber;
- _pcapPath = pcapPath;
- }
- public void startTheCapture()
- {
- Process _tsharkProcess1 = new Process();
- _tsharkProcess1.StartInfo.FileName = @"C:Program FilesWiresharktshark.exe";
- _tsharkProcess1.StartInfo.Arguments = string.Format(" -i " + _interfaceNumber + " -V -x -w " + _pcapPath);
- _tsharkProcess1.OutputDataReceived += new DataReceivedEventHandler(process_OutputDataReceived);
- _tsharkProcess1.StartInfo.RedirectStandardOutput = true;
- _tsharkProcess1.StartInfo.UseShellExecute = false;
- _tsharkProcess1.StartInfo.CreateNoWindow = true;
- _tsharkProcess1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
- _tsharkProcess1.Start();
- Thread.Sleep(2000);
- DateTime lastUpdate = DateTime.MinValue;
- StreamReader myStreamReader = _tsharkProcess1.StandardOutput;
- while (!myStreamReader.EndOfStream)
- {
- _packet = myStreamReader.ReadLine();
- if (_packet.StartsWith(" Frame Number:"))
- {
- string[] arr = _packet.Split(default(char[]), StringSplitOptions.RemoveEmptyEntries);
- _test = int.Parse(arr[2]);
- _packetsCount++;
- }
- if ((DateTime.Now - lastUpdate).TotalMilliseconds > 1000)
- {
- lastUpdate = DateTime.Now;
- OnPacketProgress(_packetsCount++);
- }
- }
- _tsharkProcess1.WaitForExit();
- }
- private void OnPacketProgress(int packet)
- {
- var handler = evePacketProgress;
- if (handler != null)
- {
- handler(packet);
- }
- }
- public void killProcess()
- {
- foreach (Process prc in System.Diagnostics.Process.GetProcessesByName("tshark"))
- {
- prc.Kill();
- prc.WaitForExit();
- }
- }
- private void process_OutputDataReceived(object sender, DataReceivedEventArgs arg)
- {
- string srt = arg.Data; //arg.Data contains the output data from the process...
- }
- }
Add Comment
Please, Sign In to add comment