Отправить сырой IP-пакет в C #, все выше уровня Ethernet - PullRequest
6 голосов
/ 13 апреля 2011

Я не хочу изменять локальные части кадра, но мне нужно изменить IP-пакет и часть данных кадра.

Я пытаюсь отправить необработанный кадр, и он все еще вводит информацию об IP. Мне нужно отправить кадр без определения конечной точки, за исключением отправляемых битов.

Вот что я получил:

Socket s = new Socket(AddressFamily.Unspecified, SocketType.Raw, ProtocolType.Raw);
EndPoint ep = new IPEndPoint(IPAddress.Parse("205.188.100.58"),80);
s.SendTo(GetBytes(""),ep); //im sending nothing, so i expect the frame to just have ethernet stuff
s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, false);

Мой вопрос: Использование SendTo добавляет IP-часть кадра, я не хочу этого, поскольку хочу подделать исходный IP-адрес. Использование «Отправить» приведет к сбою, потому что он говорит, что мне нужно указать конечную точку. Любые предложения о том, что делать? Я просто хочу отправить пакет и сам определить раздел IP и раздел данных.

Примечание: нет, я не делаю DOS-атаку, мне это нужно для законного использования!

Я знаю, как определить часть IP, просто вопрос фактической отправки данных без сгенерированной части IP.

Ответы [ 2 ]

9 голосов
/ 13 апреля 2011

Ваш вопрос очень хорошо ответил здесь: Как отправить необработанный пакет Ethernet с C #?

Используя Pcap.Net сортировку библиотеки, вы можете легко изменитьотдельные пакеты данных любым способом, который вам нужен (поскольку он использует основную реализацию WinPcap, которая очень мощна).

Вы также можете полностью пропустить уровень IP и отправить на MAC-адреса, как в: http://www.codeproject.com/KB/IP/sendrawpacket.aspxгде я использовал аналогичный подход для связи с микроконтроллером (Atmel ATmega) через Ethernet, который обеспечивает связь почти в реальном времени.

1 голос
/ 16 июня 2017

"Используя библиотеку Pcap.Net, вы можете легко изменять отдельные пакеты данных любым способом, который вам нужен (поскольку он использует основную реализацию WinPcap, которая очень мощна)."

Неправильно! WinPcap не может выполнять фильтрацию / удаление пакетов / создание пакетов. Другими словами, он просто позволяет вам контролировать пакет в асинхронном режиме ...

Необработанный пакет / Случайный режим / Фильтр драйвера / маршрутизация пакетов - это еще один разговор.

...