Guest User

Untitled

a guest
Jan 17th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. public class Tshark
  2. {
  3. public int _interfaceNumber;
  4. public string _pcapPath;
  5. public int _test;
  6. public int _packetsCount;
  7. public string _packet;
  8. public delegate void dlgPackProgress(int progress);
  9. public event dlgPackProgress evePacketProgress;
  10.  
  11. public Tshark(int interfaceNumber, string pcapPath)
  12. {
  13. _interfaceNumber = interfaceNumber;
  14. _pcapPath = pcapPath;
  15. }
  16.  
  17. public void startTheCapture()
  18. {
  19. Process _tsharkProcess1 = new Process();
  20. _tsharkProcess1.StartInfo.FileName = @"C:Program FilesWiresharktshark.exe";
  21. _tsharkProcess1.StartInfo.Arguments = string.Format(" -i " + _interfaceNumber + " -V -x -w " + _pcapPath);
  22. _tsharkProcess1.OutputDataReceived += new DataReceivedEventHandler(process_OutputDataReceived);
  23. _tsharkProcess1.StartInfo.RedirectStandardOutput = true;
  24. _tsharkProcess1.StartInfo.UseShellExecute = false;
  25. _tsharkProcess1.StartInfo.CreateNoWindow = true;
  26. _tsharkProcess1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
  27. _tsharkProcess1.Start();
  28.  
  29. Thread.Sleep(2000);
  30. DateTime lastUpdate = DateTime.MinValue;
  31. StreamReader myStreamReader = _tsharkProcess1.StandardOutput;
  32.  
  33. while (!myStreamReader.EndOfStream)
  34. {
  35. _packet = myStreamReader.ReadLine();
  36.  
  37. if (_packet.StartsWith(" Frame Number:"))
  38. {
  39. string[] arr = _packet.Split(default(char[]), StringSplitOptions.RemoveEmptyEntries);
  40. _test = int.Parse(arr[2]);
  41. _packetsCount++;
  42. }
  43.  
  44. if ((DateTime.Now - lastUpdate).TotalMilliseconds > 1000)
  45. {
  46. lastUpdate = DateTime.Now;
  47. OnPacketProgress(_packetsCount++);
  48. }
  49. }
  50.  
  51. _tsharkProcess1.WaitForExit();
  52. }
  53.  
  54. private void OnPacketProgress(int packet)
  55. {
  56. var handler = evePacketProgress;
  57. if (handler != null)
  58. {
  59. handler(packet);
  60. }
  61. }
  62.  
  63. public void killProcess()
  64. {
  65. foreach (Process prc in System.Diagnostics.Process.GetProcessesByName("tshark"))
  66. {
  67. prc.Kill();
  68. prc.WaitForExit();
  69. }
  70. }
  71.  
  72. private void process_OutputDataReceived(object sender, DataReceivedEventArgs arg)
  73. {
  74. string srt = arg.Data; //arg.Data contains the output data from the process...
  75. }
  76. }
Add Comment
Please, Sign In to add comment