SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: luisb en Martes 16 de Marzo de 2004, 16:41

Título: Reenviar Paquetes Capturados
Publicado por: luisb en Martes 16 de Marzo de 2004, 16:41
Hola  a todos.

     estoy haciendo un programa que captura paquetes en la red que corre sobre linux, lo estoy haciendo con  la libreria pcap.h.  la maquina tiene dos tarjetas de red, por la primera captura paquetes y los deberia enviar por la otra tarjeta.

     mi programa ya captura los paquetes, pero el problema que tengo es que no he encontrado la forma de reenviarlos  hacia otro destino.

   alguien tiene algun tip, o idea de como reenviar los paquetes??
Título: Re: Reenviar Paquetes Capturados
Publicado por: JuanK en Martes 16 de Marzo de 2004, 20:57
con sockets.
si te interesa ..
preguntanos.
Título: Re: Reenviar Paquetes Capturados
Publicado por: luisb en Martes 16 de Marzo de 2004, 21:18
Cita de: "juank"
con sockets.
si te interesa ..
preguntanos.
yo he estado utilizando la libreria libpcap.h....
pero si se puede hacer con sockets tambien me interesa, ya que lo mas importante es darle solucion y no es indispensable hacer libpcap.

asi es que si alguien me puede ayudar ha hacer esto con sockets, estare muy agradecido
Título: Re: Reenviar Paquetes Capturados
Publicado por: nicokiki en Martes 16 de Marzo de 2004, 21:26
En www.recursosprog.com.ar (http://www.recursosprog.com.ar) explican en un sector del sitio como inicializar la libreria WINSOCK, y luego paso a paso como establecer una conexion y como enviar datos y como cerrar la conexion de una manera muy sencilla

Salu2!!!!!
Título: Re: Reenviar Paquetes Capturados
Publicado por: JuanK en Martes 16 de Marzo de 2004, 21:28
sockets bajo lenguaj c bajo unix.
te anexo este ejemoplo de socket orientado a conexion, pero si no estudias al respecto seguro no te serviran de nada.
Título: Re: Reenviar Paquetes Capturados
Publicado por: luisb en Sábado 20 de Marzo de 2004, 19:22
hola a todos
gracias por sus sugerencias..

concretamente tengo que hacer un programa que emule un switch capa2. lo estoy haciendo en c para linux

ya tengo mi sniffer que captura los datos que llegan a las tarjetas de mi maquina.
esto lo hice con socket.

tambien ya logre hacer el reenvio de los paquetes hacia el disposiitivo que deseo.

lo unico que me hace falta ahora es analizar el paquete antes de reenviarlo
la informacion que necesito extraer es la siguiente:
     puerto de comunicaion
     protocolo del paquete

la estructura en donde se recibe la informacion es struct ether_header *eth = (struct ether_header *) buffer;

   /* Cabecera IP */
   struct iphdr *ip =
   (struct iphdr  *) (buffer + sizeof(struct ether_header));

   /* Cabecera TCP */
   struct tcphdr *tcp =
   (struct tcphdr *)(buffer + sizeof(struct iphdr));


gracias por su ayuda. ya logre avanzar bastante.