owlps/loc-mobile/librtapscanmob/rtapscanmob.h

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