Tshark将输出重定向到C#控制台程序或文件

时间:2019-07-30 10:51:02

标签: c# tshark

我正在尝试使用Tshark命令行应用程序捕获CDP数据包,然后将输出重定向到C#控制台程序或文件,然后我可以将其读取到应用程序中。这是行不通的。我正在运行Windows 10版本1703。

我已经在命令行提示符下验证了特定的tshark命令可以正常工作,并且获得了CDP数据包的正确输出,但是,当我尝试在命令行提示符下重定向输出时,写入了文件,但是没有数据书面。 C#控制台应用程序中也会发生此问题,无论是否将输出重定向到控制台或文件,都会发生此问题。我读过某处(不记得在哪里),tshark可能与重定向输出有关,您知道这是否正确吗?我还尝试通过使用tshark -W“ filename.txt”命令(与.pcap相同的结果)写入文件来重定向输出。这也会失败。

// Nic.Name = Ethernet (the network card I am capturing packet from)

// In the code below I am trying to redirect the output from the tshark command to my console application.

                    ProcessStartInfo psi = new ProcessStartInfo();
                        psi.FileName = @"C:\tshark\\tshark.exe";
                        psi.Arguments = "-i " + nic.Name + " 
                        ether[16:4] = 0x0300000C and ether[20:2] == 0x2000";
                        psi.UseShellExecute = false;
                        psi.RedirectStandardOutput = true;
                        psi.CreateNoWindow = true;
                        Process tsharkProcess = Process.Start(psi);
                        string s = tsharkProcess.StandardOutput.ReadToEnd();
                        Console.WriteLine(s);

我希望输出是这样的(运行tshark命令时不应出现命令行窗口,应该在后台运行):

在“以太网”上捕获     1 0.000000 d0:c7:89:1c:55:19→01:00:0c:cc:cc:cc CDP 492设备ID:SW1.local.it端口ID:GigabitEthernet1 / 0/25

我得到以下输出:

在“以太网”上捕获

我没有收到任何错误消息。

1 个答案:

答案 0 :(得分:0)

我发现了问题。我缺少tshark用来写入文件的.dll或.exe文件。现在可以写入文件了,但是我没有重定向到控制台即可工作。