Frage

Gibt es einen Weg, um rohes Paket Ethernet zu anderen Host über C # senden? In Windows 7, wenn es macht Unterschied.

War es hilfreich?

Lösung

Basierend auf Vorschlag von Saint_pl:

fand ich wahrscheinlich bessere Lösung - ähnlich wie SharpPcap. Es ist Pcap.Net - .NET-Wrapper für WinPcap. Jetzt kann ich meine Pakete ändern, was ich will.


ich einige Ressourcen für Sie haben, dass vielleicht hilfreich. Ich versuche nicht, dass Lösungen in Windows 7, aber vielleicht enthält es einige gute Infos zu starten.

Raw-Ethernet-Paket Manipulation oder Spiegel auf Codeproject

Das Ziel dieses Artikels ist zu erklären, wie ein rohes Ethernet-Paket mit C # auf einer Microsoft-Plattform zu senden. Ein rohes Ethernet-Paket ist der komplette Schicht-2-Netzwerkrahmen, der auf den physikalischen Draht geschickt wird. Senden eines Rahmens wie diese können Sie die Ziel- und Quell-MAC-Adressen manipulieren und die Layer-3-Protokollfelder.

Auch einige Informationen über Raw Sockets (nur, wenn Sie auch interessant):

Client (und Server) Sockets Kommunikation einen Blick auf das gesamte Kapitel nehmen, aber hier wichtige Teile :

Nicht Senden von Paketen, aber vielleicht interessant: A Network Sniffer in C # , SharpPcap - Ein Packet Capture-Framework for .NET

Andere Tipps

IPHelper API hat einige geringe Sachen - aber wahrscheinlich nicht ganz so niedrig wie Sie wollen

bekommen
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ip = new IPEndPoint(IPAddress.Parse("10.25.184.11"), 4456);

server.Connect(ip);

byte[] sendData = new byte[] { 0, 8, 32, 64 };
server.Send(sendData);

//done. now let's listen for data

byte[] receiveData = new byte[1024];
int receivedDataLength = server.Receive(receiveData);

//if the response is a string message
string stringData = Encoding.ASCII.GetString(receiveData, 0, receivedDataLength);
Console.WriteLine(stringData);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top