Domanda

C'è un modo per inviare grezzo pacchetto Ethernet ad altri host tramite C #? In Windows 7 se fa differenza.

È stato utile?

Soluzione

Sulla base di suggerimento di Saint_pl:

  

Ho trovato probabilmente migliore soluzione - simile a SharpPcap. E ' Pcap.Net - NET wrapper per WinPcap. Ora posso modificare i miei pacchetti quello che voglio.


Ho alcune risorse per te, che forse utile. Io non cerco che le soluzioni in Windows 7, ma forse contiene alcune informazioni buono per iniziare.

Raw Ethernet Packet manipolazione o specchio su CodeProject

  

Questo scopo di questo articolo è quello di spiegare come inviare un pacchetto Ethernet RAW utilizzando C # su piattaforma Microsoft. Un pacchetto Ethernet crudo è il frame di rete Layer 2 che viene inviato al filo fisico. L'invio di un telaio come questo permette di manipolare le origine e di destinazione indirizzi MAC e campi protocollo di livello 3.

Anche alcune informazioni sui socket prime (solo in caso di troppo interessante):

client (e Server) Sockets comunicazione dare un'occhiata su intero capitolo, ma qui parti fondamentali :

Non pacchetti di invio, ma forse interessante: Una rete Sniffer in C # , SharpPcap - Un pacchetto Framework Capture for .NET

Altri suggerimenti

IPHelper API ha alcune cose di basso livello - ma probabilmente non del tutto a partire da si desidera ottenere

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top