Referencia de la Clase Sniffer

The Sniffer class is the one that use the pcap library to extract the packet information. It discards any packet that is not Ethernet->IP->(TCP|UDP), and pass up to the GUI the packets that are Ethernet->IP->(TCP|UDP). Más...

`#include <sniffer.h>`

Diagrama de herencias de Sniffer

## Slots públicos

void | process ()
| El sniffer se corre como un hilo por separado y la funcion process es la funcion principal de el hilo. Es el sniffer.

## Señales

void | resultReady (unsigned long index)

## Métodos públicos

| Sniffer ()
| Constructor, no hace nada.
| Sniffer (QWaitCondition *pw, QMutex *mx, int *ps)
| Ajusta los mutexes para la inter comunicacion entre el sniffer y el GUI. Más...
| ~Sniffer ()
| Destructor, no hace nada.
vector< ip_packet > * | getPacketList ()
| Devuelve la lista de paquetes que contiene los paquetes que son Ethernet -> IP -> (TCP|UDP) Más...
string | format_payload (const char *payload, int len)
| Formatea la carga de un torrente de bytes a un cadena de caracteres ascii. Más...
string | format_hex_ascii_line (const char *payload, int len, int offset)
| Devuelve una cadena de caracteres con los bytes de una linea de la carga en ascii. Más...
void | find_devices (vector< string > &)
| Encuentra los dispositivos de red en la computadora, y los almacena en el vector devs. Más...
void | setDevice (string)
| Ajusta el dispositivo para caputurar paquetes a dev. Más...

## Métodos privados

void | print_payload (const u_char *payload, int len)
| Imprime la carga en ascii. Más...
void | print_hex_ascii_line (const u_char *payload, int len, int offset)
| Imprime la carga en ascii a std output. Más...
void | got_packet (const struct pcap_pkthdr *header, const u_char *packet)
| Secciona el paquete recibido. Extrae la informacion necesaria. Más...

## Atributos privados

vector< ip_packet > | packet_list
QWaitCondition * | wait_pause
QMutex * | mutex
string | device
string | filter
int * | pause

## Descripción detallada

The Sniffer class is the one that use the pcap library to extract the packet information. It discards any packet that is not Ethernet->IP->(TCP|UDP), and pass up to the GUI the packets that are Ethernet->IP->(TCP|UDP).

## Documentación del constructor y destructor

Sniffer::Sniffer | ( | QWaitCondition * | pw,
|  | QMutex * | mx,
|  | int * | ps
| ) |  |

Ajusta los mutexes para la inter comunicacion entre el sniffer y el GUI.

Parámetros

  pw | se usa para pausar la captura de paquetes
  mx | usado para proteger la region critica
  ps | bandera para pausar la captura de paquetes

## Documentación de las funciones miembro

void Sniffer::find_devices | ( | vector< string > & | devs | ) |

Encuentra los dispositivos de red en la computadora, y los almacena en el vector devs.

Parámetros

  devs | vector de cadenas de caracteres para los nombres

string Sniffer::format_hex_ascii_line | ( | const char * | payload,
|  | int | len,
|  | int | offset
| ) |  |

Devuelve una cadena de caracteres con los bytes de una linea de la carga en ascii.

Parámetros

  payload | carga del paquete
  len | largo del paquete
  offset | distancia del paquete

Devuelve
  a string with the bytes of a payload line in ascii

string Sniffer::format_payload | ( | const char * | payload,
|  | int | len
| ) |  |

Formatea la carga de un torrente de bytes a un cadena de caracteres ascii.

Parámetros

  payload | carga del paquete
  len | largo del paquete

Devuelve
  la carga en una cadena de caracteres ascii

vector< ip_packet > * Sniffer::getPacketList | ( |  | ) |

Devuelve la lista de paquetes que contiene los paquetes que son Ethernet -> IP -> (TCP|UDP)

Devuelve
  vector de paquetes

void Sniffer::got_packet | ( | const struct pcap_pkthdr * | header,
|  | const u_char * | packet
| ) |  |

private

Secciona el paquete recibido. Extrae la informacion necesaria.

Parámetros

  pcap_pkthdr | encabezado del paquete de pcap
  packet | paquete recibido

void Sniffer::print_hex_ascii_line | ( | const u_char * | payload,
|  | int | len,
|  | int | offset
| ) |  |

private

Imprime la carga en ascii a std output.

Parámetros

  payload | carga del paquete
  len | largo de la carga
  offset | distancia

void Sniffer::print_payload | ( | const u_char * | payload,
|  | int | len
| ) |  |

private

Imprime la carga en ascii.

Parámetros

  payload | carga del paquete
  len | largo de la carga

void Sniffer::setDevice | ( | string | dev | ) |

Ajusta el dispositivo para caputurar paquetes a dev.

Parámetros

  dev | nombre del dispositivo

La documentación para esta clase fue generada a partir de los siguientes ficheros:

- sniffer.h
- sniffer.cpp