/* * 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 #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