Modifs apd et locclient
M loc-bts/code/ap/apd.c : L'adresse du serveur d'agrégation n'est plus en dur dans le code, elle doit être spécifiée sur la ligne de commande lors de l'appel au programme. M loc-bts/code/ap/ap.h : Modifications mineures dans le même sens. M loc-bts/code/client/locclient.c git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@10 785a6c6c-259e-4ff1-8b91-dc31627914f0
This commit is contained in:
parent
5640fe2479
commit
55350b38cd
|
@ -21,8 +21,13 @@
|
||||||
#define ERR_BAD_USAGE 3 // Mauvais appel au programme
|
#define ERR_BAD_USAGE 3 // Mauvais appel au programme
|
||||||
|
|
||||||
|
|
||||||
|
/* Arguments du programme */
|
||||||
|
#define ARGC 4
|
||||||
|
enum {ARGV_AGGREG_IP=1, ARGV_RTAP_IFACE, ARGV_WIFI_IFACE} ;
|
||||||
|
|
||||||
|
|
||||||
/* En-têtes des fonctions */
|
/* En-têtes des fonctions */
|
||||||
int capture(char *capture_iface, BOOL print_values) ;
|
int capture(char *capture_iface, char *aggregated_ip, BOOL print_values) ;
|
||||||
void read_packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet, int sockfd, struct sockaddr_in *server, BOOL print_values) ;
|
void read_packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet, int sockfd, struct sockaddr_in *server, BOOL print_values) ;
|
||||||
void get_mac_addr(char *eth, unsigned char mac_bytes[6]) ;
|
void get_mac_addr(char *eth, unsigned char mac_bytes[6]) ;
|
||||||
void print_usage(char *prog) ;
|
void print_usage(char *prog) ;
|
||||||
|
|
|
@ -12,10 +12,10 @@ unsigned char mac[6] ; // Adresse MAC de l'AP
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
struct sigaction action ; // Structure de mise en place des gestionnaires de signaux
|
struct sigaction action ; // Structure de mise en place des gestionnaires de signaux
|
||||||
int ret ;
|
char *mac_string ; // MAC de l'AP sous forme de chaîne
|
||||||
char *mac_string ;
|
int ret ; // Code de retour du programme
|
||||||
|
|
||||||
if (argc != 3)
|
if (argc != ARGC)
|
||||||
{
|
{
|
||||||
print_usage(argv[0]) ;
|
print_usage(argv[0]) ;
|
||||||
return ERR_BAD_USAGE ;
|
return ERR_BAD_USAGE ;
|
||||||
|
@ -30,12 +30,12 @@ int main(int argc, char *argv[])
|
||||||
action.sa_handler = sigterm_handler ;
|
action.sa_handler = sigterm_handler ;
|
||||||
sigaction(SIGTERM, &action, NULL) ;
|
sigaction(SIGTERM, &action, NULL) ;
|
||||||
|
|
||||||
get_mac_addr(argv[2], mac) ;
|
get_mac_addr(argv[ARGV_WIFI_IFACE], mac) ;
|
||||||
mac_string = mac_bytes_to_string(mac) ;
|
mac_string = mac_bytes_to_string(mac) ;
|
||||||
printf("Ma mac est : %s\n", mac_string) ;
|
printf("Ma mac est : %s\n", mac_string) ;
|
||||||
free(mac_string) ;
|
free(mac_string) ;
|
||||||
|
|
||||||
ret = capture(argv[1], TRUE) ;
|
ret = capture(argv[ARGV_RTAP_IFACE], argv[ARGV_AGGREG_IP], TRUE) ;
|
||||||
|
|
||||||
printf("%s : fin.\n", argv[0]) ;
|
printf("%s : fin.\n", argv[0]) ;
|
||||||
return ret ;
|
return ret ;
|
||||||
|
@ -46,9 +46,9 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
/* Capture des paquets en utilisant l'interface "capture_iface" pendant "capture_time" mili-secondes.
|
/* Capture des paquets en utilisant l'interface "capture_iface" pendant "capture_time" mili-secondes.
|
||||||
Les informations concernant les mobiles effectuant des requêtes sont conservées dans la liste "known_mobiles".
|
Les informations concernant les mobiles effectuant des requêtes sont conservées dans la liste "known_mobiles".
|
||||||
Les données capturées sont envoyées au serveur d'aggrégation à travers la socket UDP "socket".
|
Les données capturées sont envoyées au serveur d'aggrégation dont l'IP est "aggregated_ip" à travers la socket UDP "socket".
|
||||||
*/
|
*/
|
||||||
int capture(char *capture_iface, BOOL print_values)
|
int capture(char *capture_iface, char *aggregated_ip, BOOL print_values)
|
||||||
{
|
{
|
||||||
pcap_t *handle ; // Descripteur de capture de paquets
|
pcap_t *handle ; // Descripteur de capture de paquets
|
||||||
char errbuf[PCAP_ERRBUF_SIZE] ;// Message d'erreur
|
char errbuf[PCAP_ERRBUF_SIZE] ;// Message d'erreur
|
||||||
|
@ -72,7 +72,7 @@ int capture(char *capture_iface, BOOL print_values)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Ouverture de la socket UDP vers le serveur d'aggrégation */
|
/* Ouverture de la socket UDP vers le serveur d'aggrégation */
|
||||||
sockfd = create_udp_sending_socket("127.0.0.1", AGGREGATE_DEFAULT_PORT, &server, &client);
|
sockfd = create_udp_sending_socket(aggregated_ip, AGGREGATE_DEFAULT_PORT, &server, &client);
|
||||||
if (sockfd < 0)
|
if (sockfd < 0)
|
||||||
{
|
{
|
||||||
perror("Erreur ! Impossible de créer la socket vers le serveur d'aggrégation \n");
|
perror("Erreur ! Impossible de créer la socket vers le serveur d'aggrégation \n");
|
||||||
|
@ -304,7 +304,8 @@ void get_mac_addr(char *eth, unsigned char mac_bytes[6])
|
||||||
void print_usage(char *prog)
|
void print_usage(char *prog)
|
||||||
{
|
{
|
||||||
printf("Usage :\n\
|
printf("Usage :\n\
|
||||||
\t%s rtap_iface wifi_iface\n\
|
\t%s ip_agrégation rtap_iface wifi_iface\n\
|
||||||
|
- ip_agrégation est l'adresse IP du serveur d'agrégation.\n\
|
||||||
- rtap_iface est l'interface de capture radiotap.\n\
|
- rtap_iface est l'interface de capture radiotap.\n\
|
||||||
- wifi_iface est l'interface physique correspondant à rtap_iface.\n\
|
- wifi_iface est l'interface physique correspondant à rtap_iface.\n\
|
||||||
", prog) ;
|
", prog) ;
|
||||||
|
|
|
@ -27,7 +27,7 @@ void print_usage(char *prog)
|
||||||
printf("Usage :\n\
|
printf("Usage :\n\
|
||||||
\t- Demande de localisation : %s [iface] ip_serveur\n\
|
\t- Demande de localisation : %s [iface] ip_serveur\n\
|
||||||
\t- Requête de calibration : %s [iface] ip_serveur direction x y z\n\
|
\t- Requête de calibration : %s [iface] ip_serveur direction x y z\n\
|
||||||
iface est une chaîne désignant le nom de interface réseau à partir de laquelle envoyer la demande (par exemple \"eth2\"). Si elle n'est pas spécifiée, le choix de l'interface source est automatique.\n\
|
iface est une chaîne désignant le nom de interface réseau à partir de laquelle envoyer la demande (par exemple \"eth2\"). Si elle n'est pas spécifiée, le choix de l'interface source est automatique. Vous devez être root pour utiliser cette option.\n\
|
||||||
", prog, prog) ;
|
", prog, prog) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue