Tshark 将输出重定向到 C# 控制台程序或文件
Tshark redirect output to C# console program or to file
我正在尝试使用 Tshark 命令行应用程序捕获 CDP 数据包,并将输出重定向到我的 C# 控制台程序或一个文件,然后我可以将其读入我的应用程序。这是行不通的。我是运行宁Windows10版本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);
我希望输出是这样的(命令行 window 不应在 运行 宁 tshark 命令时出现,这应该 运行 在后台):
正在 'Ethernet' 拍摄
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
我得到以下输出:
正在 'Ethernet'
拍摄
我没有收到任何错误消息。
我找到问题了。我缺少 tshark 写入文件所依赖的 .dll
或 .exe
文件。现在可以写入文件,但我没有重定向到控制台。
我正在尝试使用 Tshark 命令行应用程序捕获 CDP 数据包,并将输出重定向到我的 C# 控制台程序或一个文件,然后我可以将其读入我的应用程序。这是行不通的。我是运行宁Windows10版本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);
我希望输出是这样的(命令行 window 不应在 运行 宁 tshark 命令时出现,这应该 运行 在后台):
正在 'Ethernet' 拍摄 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
我得到以下输出:
正在 'Ethernet'
拍摄我没有收到任何错误消息。
我找到问题了。我缺少 tshark 写入文件所依赖的 .dll
或 .exe
文件。现在可以写入文件,但我没有重定向到控制台。