2008-11-25 3 views
1

Я пишу приложение, где все запросы в Интернет должны идти от него, как в брандмауэре. так что я могу заблокировать запрос для определенного веб-сайта. В моем случае программа будет работать на том же компьютере. Я пробовал метод promiscous, но используя это, мы можем только захватить все пакеты, поступающие из машины,Отфильтровать TCP-пакеты в C#

ответ

1

Вы должны вставить свой код в стек TCP/IP, который, если я правильно понимаю, требует наличия окон Водитель.

C# не может скомпилировать собственные драйверы Windows, поэтому вам нужно будет использовать библиотеку или DLL для реализации хотя бы части ваших функций. Ищите решения с использованием C++.

-Adam

3

Самый простой способ сделать это, вероятно, чтобы написать Layered Service Provider (LSP). В Microsoft SDK есть пример разработки LSP. Не так безопасно, как настройка брандмауэра типа драйвера, но намного проще реализовать.

Есть, вероятно, способ сделать это с помощью C#, но я никогда не пробовал. Что-то посмотреть. Если нет, то просто создайте собственную DLL с C/C++, которая реализует LSP, а затем связалась с вашим приложением.

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