SoloCodigo
Programación General => C/C++ => Mensaje iniciado 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??
-
con sockets.
si te interesa ..
preguntanos.
-
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
-
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!!!!!
-
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.
-
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.