Здравствуйте, x64, Вы писали:
IS>>1) Любой запрос IP (именно на уровне протокола) перехватывается и фильтруется
x64>Что подразумевается под словом "фильтруется"? Что именно и как именно требуется фильтровать? Чем подробнее и внятнее объяснишь, тем быстрее получишь адекватный ответ.
IS>>2) На некоторые TCP запросы (например на не существующий IP адрес) эмулируется корректный ответ.
x64>Не, ну как на закрытый порт пакеты приходят, это я ещё могу понять. Но как, по-твоему, на узел будут приходить IP-пакеты, у которых целевой адрес не соответствует ни одному из IP-адресов этого узла? Это явно ненормальная ситуация. Теоретически такое возможно, но TCP/IP-стек такой пакет не примет. До TCP-фильтра транспортного уровня он не дойдёт совершенно точно, придётся писать фильтр более низкого уровня, NDIS IM драйвер или NDIS-фильтр, начиная с Windows Vista. Короче, сделать-то такое можно, но зачем?
IS>>Как ЭТО можно сделать на C#? (и вообще возможно ли это?)
x64>На голом C# такое не делается. Если не хочешь драйвер писать, возьми какой-нибудь готовый SDK, их хоть и не много, но найти можно.
Я понял, что немножко не правильно формулирую...
1)Есть у нас прога А на компе А
2)Эта прога А делает IP запрос на IP (из некого списка, не обязательно существующий).
3)Моя прога должна схавать этот запрос и переслать его компу B
4)комп B должен этот запрос выполнить, заменив или нет, в зависимости от настроек адрес отправителя...
5)в случае необходимости И отправляет ответ на запрос моей проге (если это к примеру TCP)
6)моя программа от имени IP из пункта 2 отвечает программе A