2012-06-18 6 views
0

Я хочу разработать программу в C#, которая может настроить трафик и приложение или порт, и пытается просмотреть этот трафик. Например, я выбираю программу example.exe в своем приложении, и это дает мне данные о сетевом трафике. Возможно ли это? Если да, дайте мне несколько направлений. Я пытаюсь не использовать airPcap или winPcap или что-то в этом роде, потому что эти библиотеки нацелены на сетевую карту, и я не знаю, какой тип интерфейсной карты пользователь может использовать.Можем ли мы обнюхать сетевой трафик какой-либо программы?

+0

wirehark? ..... Или обучение ... –

+0

Фильтр как программа – armin

ответ

1

Вы должны либо захватить пакеты, в которых вы получаете дубликат из NIC (pcap), либо запросить маршрут через свое собственное приложение, чтобы вы могли проверить поток прямых пакетов (прокси-подобные).

Для реализации WinPcap на C# взгляните на SharpPcap. Для прокси-сервера см. here.

1

winPcap - очень хорошая библиотека для того, что вы хотите сделать. Если вы решите сделать это самостоятельно, вы только изобретете колесо и не сможете поддерживать столько сетевых карт, сколько оно есть.

Если вы хотите видеть только трафик, вам нужно будет использовать прокси между ними. Но я считаю, что вы не собираетесь строить что-то вроде fiddler, например, , который находится между ними и позволяет вам отслеживать трафик.

0

Если вы правильно поняли, что хотите сделать приложение C#, в котором вы выбираете из списка запущенных приложений и отображаете сетевой трафик в/из этого приложения. Вы можете сделать это с помощью C#, но вам нужно будет звонить в Windows API, чтобы получить необходимую информацию. Кроме того, вам понадобится библиотека non-C# для захвата пакетов в формате WinPcap. У Windows есть новый API NetMon, который делает pcap как вещи. Я не использовал его, но вы, вероятно, лучше с pcap и SharpPcap lib, которые отправил CodeCaster.

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