6 Stimmen

Senden von Raw IP-Paketen in C#, alles oberhalb der Ethernet-Schicht

Ich möchte die Ethernet-Teile des Rahmens nicht ändern, aber ich muss das IP-Paket und den Datenteil des Rahmens ändern.

Wenn ich versuche, einen unbearbeiteten Frame zu senden, werden immer noch die IP-Informationen eingefügt. Ich muss im Grunde einen Frame senden, ohne den Endpunkt zu definieren, außer in den Bits, die ich sende.

Hier ist das Ergebnis:

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);

Meine Frage: Mit SendTo wird der IP-Teil des Frames hinzugefügt, was ich nicht möchte, da ich die Quell-IP fälschen möchte. Mit "Send" wird abstürzen, weil es sagt, ich muss einen Endpunkt angeben. Irgendwelche Vorschläge, was zu tun ist? Ich möchte nur ein Paket senden und den IP-Teil und den Datenteil selbst definieren.

Hinweis: Nein, ich mache keinen DOS-Angriff, ich brauche das für einen legitimen Zweck!

Ich weiß, wie man den IP-Teil definiert, es geht nur darum, die Daten ohne einen generierten IP-Teil zu senden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X