Página principal | Lista de componentes | Lista de archivos | Miembros de las clases | Archivos de los miembros

Referencia del Archivo snif_for.c

#include "general_var.h"
#include <pcap.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>

Funciones

int datalink_size (const char *dispositivo, char *errbuff)
int snif_for (const char *dispositivo, char *errbuff, char *filtro, pcap_handler f_manejadora, int _time_out, u_char *otros_parametros)

Descripción detallada

Funciones que relacionadas con el acceso a los datos a nivel MAC

Documentación de las funciones

int datalink_size const char *  dispositivo,
char *  errbuff
 

Sirve para obtener el tamaño de la cabecera de la capa de enlace del protocolo que se está usando. Sólo contempla tres, ethernet, 802.11 y linuxcooked capture (any)

Parámetros:
dispositivo Interfaz de red de la que se desea saber el tamño.
errbuf Buffer usado por las librerías pcap para almacenar mensajes de error. Debe de estar el buffer ya reservado y con un tamaño mínimo PCAP_ERRBUF_SIZE.
Devuelve:
: tamaño de la capa de enlace (en bytes) o -1 en caso de error o protocolo desconocido.

int snif_for const char *  dispositivo,
char *  errbuff,
char *  filtro,
pcap_handler  f_manejadora,
int  _time_out,
u_char *  otros_parametros
 

La función snif_for se encarga de capturar paquetes por la interfaz "dispositivo", que se ajusten a un filtro del tipo tcpdump que se le pasa como parámetro. Tras la captura llama a la función f_manejadora, que será la que se encargue de procesar el paquete, y que también recibirá el parámetro "otros_parametros". En caso de error se almacenará en errbuff.

Parámetros:
dispositivo: debe de contener una cadena del tipo eth0, eth1, ethx que indique el dispositivo a escuchar
errbuff: buffer donde almacenaremos un posible mensaje de error tiene que contener espacio suficiente.
fitro Cadena que contendrá un un filtro en el formato libpcap. mas informacion en "man tcpdump".
f_manejadora: Función que recibe cada paquete capturado para su tratamiento. NULL si no queremos hacer nada.
_time_out: tiempo mínimo de bloqueo en espera de la llegada de un Paquete. Si es menor que 0 espera indefinidamente
otros_parametros cualquier cosa que necesitemos. Se le pasan tal cual a la función manejadora.
Devuelve:
-1 si ha habido un error. 0 si se ha capturado el paquete de forma correcta. -2 si se ha interrumpido el loop debido a que ha finalizado el tiempo máximo de espera.


Generado el Mon Sep 19 00:05:20 2005 para PuerTock por  doxygen 1.3.9.1