我正在尝试使用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);
在“以太网”上捕获 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
在“以太网”上捕获
我没有收到任何错误消息。
答案 0 :(得分:0)
我发现了问题。我缺少tshark用来写入文件的.dll或.exe文件。现在可以写入文件了,但是我没有重定向到控制台即可工作。