На моей машине с Ubuntu меня интересует захват трафика через порт 20001. Для захвата трафика через этот порт я делаю:
Установите tcpdump apt-get install tcpdump
Run: tcpdump -i eth0 port 20001
(имя моего сетевого интерфейса eth0)
- Это выводит:
00: 49:36.157448 IP debian.20001> 192.168.1.3.5868: UDP, длина 652
00: 49: 36.159375 IP 192.168.1.3.5868> debian.20001: UDP, длина 681
00:53: 58.614081 IP 192.168.1.3.5868> debian.20001: UDP, длина 674
00: 53: 58.621773 IP debian.20001> 192.168.1.3.5868: UDP, длина 626
... и т. Д.
Теперь я хотел бы получить эти же данные из c # (моно), и вот что я пробовал:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("started!");
var proc = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "tcpdump",
Arguments = "-i eth0 port 20001", // note eth0 is the name of my network interface
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
}
};
proc.Start();
while (!proc.StandardOutput.EndOfStream)
{
string line = proc.StandardOutput.ReadLine();
Console.WriteLine(line);
}
}
}
Когда я запускаюэта программа ничего не захватывает. Как я могу получить результат tcpdump -i eth0 port 20001
из моего приложения mono c #? Я знаю, что могу записать его в файл, но файл станет слишком большим, и я хочу избежать этого.Или, может быть, записать его в файл и продолжить его удаление?