# My Project: Referencia de la Clase Sniffer

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