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

我正在尝试使用 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


我得到以下输出:

在“以太网”上捕获


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


慕桂英3389331
浏览 169回答 1
1回答

肥皂起泡泡

我已经找到问题了。我缺少tshark 依赖于写入文件的a.dll或文件。.exe写入文件现在可以工作,但我没有重定向到控制台来工作。
打开App,查看更多内容
随时随地看视频慕课网APP