Pregunta

¿Hay una manera de enviar crudo paquete Ethernet a otro host a través de C #? En Windows 7, si se hace la diferencia.

¿Fue útil?

Solución

En base a sugerencia de Saint_pl:

He encontrado probablemente mejor solución - similar a SharpPcap. Es Pcap.Net - NET envoltorio para WinPcap. Ahora puedo modificar mis paquetes de lo que quiera.


Me tiene algunos recursos para usted que tal vez útil. No intento que las soluciones en Windows 7, pero quizá Contiene buena información para empezar.

de paquetes Ethernet Raw Manipulación o espejo en CodeProject

Este propósito de este artículo es explicar cómo enviar un paquete Ethernet cruda usando C # en una plataforma Microsoft. Un paquete Ethernet en bruto es el marco de red de capa 2 completa que se envía al cable físico. Envío de una trama como esto le permite manipular las de origen y destino direcciones MAC y los campos de protocolo de Capa 3.

También algo de información sobre los conectores directos (en caso de que interesante también):

cliente (y servidor) terminales de comunicación echar un vistazo en el capítulo entero, pero las piezas clave aquí :

No enviar paquetes, pero tal vez interesante: Una red Sniffer en C # , SharpPcap - Marco captura un paquete para .NET

Otros consejos

IPHelper API tiene algunas cosas de bajo nivel - pero probablemente no es tan bajo como usted quiere conseguir

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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top