[C con Clase] Obtener direccion MAC de un dispositivo
Moises Brenes
moises.brenes en gmail.com
Lun Abr 2 07:39:38 CEST 2007
Bueno al final estoy haciendo asi, pero es que ya estoy desesperado.
Pero veo algo raro a la hora de leer el fichero :
La ultima linea me la lee 2 veces y no encuentro el problema.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char ip_addr[16];
char mac_addr[18];
char arg_ping[64];
char arg_arp[64];
char d_char[6];
char *p_token;
char file_name[16];
char file_stream[128];
char tokens[128];
int flag;
FILE *p_file;
strcpy(ip_addr,"192.168.1.201");
strcpy(arg_ping,"ping ");
strcpy(arg_arp,"arp -a ");
strcat(arg_ping,ip_addr);
strcat(arg_ping," -n 1");
strcat(arg_arp,ip_addr);
strcat(arg_arp," > ");
strcat(arg_arp,ip_addr);
strcat(arg_arp,".txt");
system(arg_ping);
system(arg_arp);
strcpy(d_char," \n\t");
strcpy(file_name,ip_addr);
strcat(file_name,".txt");
p_file = fopen(file_name,"r");
flag = 0;
while (!feof(p_file))
{
fgets(file_stream,128,p_file);
strcpy(tokens,file_stream);
p_token = strtok(tokens,d_char);
if (p_token != NULL)
{
if (strcmp(p_token,ip_addr) == 0)
{
flag = 1;
}
else
{
if (flag == 1)
{
printf("MAC Address : %s\n",p_token);
strcpy(mac_addr,p_token);
flag = 2;
}
}
}
while ((p_token = strtok(NULL,d_char)) != NULL)
{
if (p_token != NULL)
{
if (strcmp(p_token,ip_addr) == 0)
{
flag = 1;
}
else
{
if (flag == 1)
{
printf("MAC Address : %s\n",p_token);
strcpy(mac_addr,p_token);
flag = 2;
}
}
}
}
}
fclose(p_file);
return 0;
}
PD: Paso el fichero adjunto
------------ próxima parte ------------
An embedded and charset-unspecified text was scrubbed...
Name: 192.168.1.201.txt
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20070401/7941f229/attachment.txt>
Más información sobre la lista de distribución Cconclase