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

Referencia del Archivo listas.h

#include <netinet/in.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <time.h>
#include <string.h>

Clases

struct  str_element_ips

Funciones

element_ipsextrae_ip (element_ips **cabecera, struct in_addr id_ip)
int add_ip (element_ips **cabecera, struct in_addr id_ip)
char * filtro_ip (int n_elementos, element_ips *cabecera, const char *tipo_filtro, int apariciones_max)
char * listaip_componfiltro_deny (int _n_elementos, element_ips *_cabecera, const char *_filtro_basico, int _apariciones_max)
void borra (element_ips **cabecera, struct in_addr id_ip)
element_ipsborra_viejos (element_ips **cabecera_p, double margen)

Variables

int n_intentos_lista

Descripción detallada

En este archivo se encuentran las funciones destinadas a la gestión de una lista en la que se registran los intentos de conexión.La lista de direcciones Ips está compuesta a nivel lógico de una lista enlazada de elementos element_ips, ordenados temporalmente en función de su última modificacion

Documentación de las funciones

int add_ip element_ips **  cabecera,
struct in_addr  id_ip
 

Añade un elemento a la lista. La ordenación que se sigue es en función orden de aparicion. Esto es, primero se encuentran las direcciones desde las cuales ha llegado un intento de acceso más recientemente.

Parámetros:
cabecera1: Puntero a la dirección de la cabecera de la lista.
in_addr id_ip: Dirección IP del elemento a añadir
Devuelve:
2 si el elemento añadido ha alcanzado el numero máximo de operaciones 0 si el elemento es nuevo 1 si el elemento estaba incluido anteriormente

void borra element_ips **  cabecera,
struct in_addr  id_ip
 

Elimina un elemento de la lista y libera el espacio.

Parámetros:
cabecera1: Puntero a la dirección de la cabecera de la lista.
in_addr id_ip: Dirección IP del elemento a buscar

element_ips* borra_viejos element_ips **  cabecera_p,
double  margen
 

Recorre la lista de direcciones y elimina los elementos antiguos.

Parámetros:
cabecera_p: Puntero a la dirección de la cabecera de la lista.
margen: Antiguedad máxima expresada en segundos.
Devuelve:
Puntero a la última dirección de la lista una vez eliminadas las mas viejas.

element_ips* extrae_ip element_ips **  cabecera,
struct in_addr  id_ip
 

Extrae un elemento de la lista y devuelve un puntero a el

Parámetros:
cabecera1: Puntero a la dirección de la cabecera de la lista.
in_addr id_ip: Dirección IP del elemento a buscar
Devuelve:
Dirección del elemento de la lista extraido.

char* filtro_ip int  n_elementos,
element_ips cabecera,
const char *  tipo_filtro,
int  apariciones_max
 

Recorre una lista de direcciones, extrae la dirección IP de cada elemento y compone un filtro tcpdump de la forma: tipo_filtro (IP1 || IP2 ...)

Parámetros:
n_elementos: Número mínimo de elementos que se incluyen en el filtro. Si es 0, devuelve todos los elementos de la lista.
cabecera: Primer elemento de la lista
tipo_filtro Palabras que compondran el filtro para cada direccion, por ejemplo : 'dst host not (192.168.1.3 || 192.168.1.4 || 192.168.1.2) && src host not 192.168.1.2'
apariciones_min Número mínimo de veces que tiene que haberse producido un intento de acceso desde una Ip para que ésta entre en el filtro.
Devuelve:
Un puntero al filtro
Atención:
Recordar que desde fuera hay que liberar el espacio del filtro con free()

char* listaip_componfiltro_deny int  _n_elementos,
element_ips _cabecera,
const char *  _filtro_basico,
int  _apariciones_max
 

Es la función a la que se accede mas comúnmente desde el exterior. Forma un filtro que de la siguiente forma: 'dst host not lista_filtros and filtro_basico' Evaluar si ha habido cambios desde la anterior llamada para evitar el proceso de tener que recorrer de nuevo la lista de Ips.

Parámetros:
n_elementos Número mínimo de elementos que se incluyen en el filtro. Si es 0, devuelve todos los elementos de la lista.
cabecera Primer elemento de la lista
_filtro_basico Filtro que se concatenará con el filtro que resulte de la lista de direcciones.
apariciones_min Número mínimo de veces que tiene que haberse producido un intento de acceso desde una Ip para que ésta entre en el filtro.
Devuelve:
Un puntero al filtro


Documentación de las variables

int n_intentos_lista
 

Numero de intentos erroneos de conexion necesarios para descartar el trafico proveniente de una direccion


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