C program to read mac address using WiFi interface name

If you need to get the mac address of certain wifi interface using C program, you can use the below program. This program should work on any Linux as well as Android platforms.

$ vim read_wifi_mac.c 
[c] #include <stdio.h> #include <stdlib.h> #include <string.h> // here our wifi interface was shown as wlp3s0, in your case it may be // wlan0 , hence you need to use /sys/class/net/wlan0/address instead // of /sys/class/net/wlp3s0/address char *read_mac_address() { char *t_mac = (char *) malloc(32); char *mac = (char *) malloc(32); FILE *fp = NULL; fp = popen("cat /sys/class/net/wlp3s0/address", "r"); if (fp == NULL) { printf("Failed to get mac address using command\n" ); return NULL; } fgets(t_mac, 32, fp); strncpy(mac, t_mac, strlen(t_mac) – 1); //remove /n from mac read pclose(fp); free(t_mac); return mac; } int main(int argc, char **argv) { char *mac = NULL; mac = read_mac_address(); printf("%s\n", mac); } [/c]

Now, you can compile and run the program as,

 $ gcc -o read_wifi_mac read_wifi_mac.c 
 $ ./read_wifi_mac 

Leave a Comment