Отправить пакет Raw IP на C #, все, что находится выше уровня Ethernet

Я не хочу изменять части кадра Ethernet, но мне нужно изменить 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.

6
задан brandon 13 April 2011 в 16:17
поделиться