74 lines
2.5 KiB
C
74 lines
2.5 KiB
C
/*
|
|
* This is the rtapanalyser library, Wi-Fi packet sniffer and analyser,
|
|
* thanks to the radiotap header of each packet.
|
|
*/
|
|
|
|
#ifndef _LIB_RTAPSCANMOB_H
|
|
#define _LIB_RTAPSCANMOB_H
|
|
|
|
|
|
#include <pcap.h>
|
|
|
|
#include "../../librtaputil/rtaputil.h"
|
|
|
|
|
|
|
|
/* Liste chaînée des valeurs des champs rtap */
|
|
typedef struct _ss_list
|
|
{
|
|
unsigned char header_revision ;
|
|
unsigned char header_pad ;
|
|
unsigned short header_length ;
|
|
unsigned short fhss;
|
|
unsigned long present_flags ;
|
|
unsigned long long mac_timestamp ;
|
|
unsigned char flags;
|
|
unsigned char data_rate ;
|
|
unsigned short channel ;
|
|
unsigned short channel_type ;
|
|
unsigned char antenna_signal_dbm ;
|
|
unsigned char antenna_noise_dbm ;
|
|
unsigned char antenna ;
|
|
unsigned short lock_quality ;
|
|
unsigned short tx_attenuation ;
|
|
unsigned short tx_attenuation_db ;
|
|
unsigned char tx_attenuation_dbm ;
|
|
unsigned char antenna_signal_db ;
|
|
unsigned char antenna_noise_db ;
|
|
unsigned long fcs ;
|
|
BOOL check[15] ; // Champs présents
|
|
struct _ss_list *next ;
|
|
} ss_list ;
|
|
|
|
|
|
/* Liste chaînée des adresses MAC en provenances desquelles on a capturé des paquets */
|
|
typedef struct _mac_list
|
|
{
|
|
unsigned short int nb_samples ; // Nombre d'occurrences de l'adresse MAC
|
|
unsigned char mac_addr_bytes[6] ; // Adresse MAC en octets
|
|
ss_list *samples_list ; // Liste des valeurs capturées pour cette adresse
|
|
struct _mac_list *next ; // Élément suivant de la liste
|
|
} mac_list ;
|
|
|
|
|
|
/* Codes d'erreurs */
|
|
#define ERR_FILENAME 1 // Erreur dans le nom du fichier d'entrée ou de sortie
|
|
#define ERR_OPENING_FILE 2 // Erreur lors de l'ouverture du fichier d'entrée ou de sortie
|
|
#define ERR_OPENING_IFACE 3 // Erreur lors de l'ouverture de l'interface de capture
|
|
#define ERR_CAPTURE_TIME_FORMAT 4 // Format du temps de capture incorrect
|
|
#define ERR_CLOSING_FILE 5 // Erreur lors de la fermeture du fichier de sortie
|
|
|
|
|
|
/* En-têtes des fonctions */
|
|
int capture(char *capture_iface, unsigned long capture_time, mac_list **results, BOOL print_values) ;
|
|
void read_packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet, mac_list **results, BOOL print_values) ;
|
|
void print_mac_list(mac_list *results, BOOL verbose) ;
|
|
void print_ss_list(ss_list *ss) ;
|
|
void free_mac_list(mac_list **results) ;
|
|
int write_mac_list_to_file(char *file, mac_list *results) ;
|
|
int read_mac_list_from_file(char *file, mac_list **results) ;
|
|
int write_mac_list_to_text_file(char *file, mac_list *results, char direction, float pos_x, float pos_y, float pos_z) ;
|
|
|
|
|
|
#endif
|