2009-06-10 3 views

ответ

3

Вы можете проверить «перехвата пакетов» инструментов, например Ethereal или TCPDump - они с открытым исходным кодом и имеют интерфейсы командной строки, поэтому вы можете вызывать их из своей программы и анализировать любые файлы журналов, которые она может произвести. Packet sniffers сканирует вашу сеть на отправку пакетов, активность в Интернете обычно будет включать TCP и IP-пакеты, чтобы вы могли фильтровать их и посмотреть, куда они были отправлены из/где они собираются.

+0

Мы изменили название Ethereal на Wireshark (http://www.wireshark.org) еще в 2006 году ... –

+0

@Gerald: Итак, кто на www.ethereal.com? –

2

Я бы сказал, что вы должны взглянуть на класс System.Diagnostics.PerformanceCounter. MSDN page для этого класса.

Ниже приведен фрагмент кода, который извлекает байты в секунду в сетевом интерфейсе.

PerformanceCounterCategory category = new PerformanceCounterCategory("Network Interface"); 

// Look at GetInstanceNames() result to find you interface, mine's 3 for example 
string instance = category.GetInstanceNames()[0]; 

PerformanceCounter sent = new PerformanceCounter("Network Interface", "Bytes Sent/sec", instance); 
PerformanceCounter received = new PerformanceCounter("Network Interface", "Bytes Received/sec", instance); 

while (true) 
{ 
    Console.WriteLine("Send {0}b/s\tReceive {1}b/s", sent.NextValue(), received.NextValue()); 
    Thread.Sleep(500); 
} 
3

вы можете использовать sharpPcap, это основа захвата пакетов для .Net библиотека имеет много полезных функций для пакетов мониторинга, можно фильтровать HTTP-пакеты.

Смежные вопросы