My Project
Slots públicos | Señales | Métodos públicos | Métodos privados | Atributos privados | Lista de todos los miembros
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_packetpacket_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
pwse usa para pausar la captura de paquetes
mxusado para proteger la region critica
psbandera 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
devsvector 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
payloadcarga del paquete
lenlargo del paquete
offsetdistancia 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
payloadcarga del paquete
lenlargo 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_pkthdrencabezado del paquete de pcap
packetpaquete 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
payloadcarga del paquete
lenlargo de la carga
offsetdistancia
void Sniffer::print_payload ( const u_char *  payload,
int  len 
)
private

Imprime la carga en ascii.

Parámetros
payloadcarga del paquete
lenlargo de la carga
void Sniffer::setDevice ( string  dev)

Ajusta el dispositivo para caputurar paquetes a dev.

Parámetros
devnombre del dispositivo

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