我可以从 Linux 中的 C 代码获取 SSID 和 MAC 地址吗?
Can I get SSID and MAC address from C code in Linux?
我正在为我的 Majaro Linux 编写一个 C 备份程序。只有当我连接到我的家庭网络时,它才必须在特定时间在我的家庭本地服务器中备份文件。所以我需要得到一个SSID和一个MAC地址一个当前网络来决定它是否是我的网络。
是否有Linux(Arch)默认命令,C库函数或文件,包含这些信息?
我已经尝试了一些Linux工具,例如ifconfig,但对我没用。
求助!
完成
感谢大家的帮助,尤其是 Iliya Iliev and to this library。
它完美运行。
这正是我一直在寻找的!
我只是将它添加到我的主项目中。
#include "../wifi_scan.h"
#include <stdio.h>
#include <unistd.h>
const char *bssid_to_string(const uint8_t bssid[BSSID_LENGTH], char bssid_string[BSSID_STRING_LENGTH])
{
snprintf(bssid_string, BSSID_STRING_LENGTH, "%02x:%02x:%02x:%02x:%02x:%02x",
bssid[0], bssid[1], bssid[2], bssid[3], bssid[4], bssid[5]);
printf("%x\n", bssid[5]);
return bssid_string;
}
int main(int argc, char **argv){
struct wifi_scan *wifi=NULL;
struct station_info station;
char mac[BSSID_STRING_LENGTH];
wifi=wifi_scan_init(argv[1]);
wifi_scan_station(wifi, &station);
printf("ssid = %s mac = %s \n", station.ssid, bssid_to_string(station.bssid, mac));
wifi_scan_close(wifi);
}
我正在为我的 Majaro Linux 编写一个 C 备份程序。只有当我连接到我的家庭网络时,它才必须在特定时间在我的家庭本地服务器中备份文件。所以我需要得到一个SSID和一个MAC地址一个当前网络来决定它是否是我的网络。
是否有Linux(Arch)默认命令,C库函数或文件,包含这些信息?
我已经尝试了一些Linux工具,例如ifconfig,但对我没用。
求助!
完成
感谢大家的帮助,尤其是 Iliya Iliev and to this library。 它完美运行。
这正是我一直在寻找的!
我只是将它添加到我的主项目中。
#include "../wifi_scan.h"
#include <stdio.h>
#include <unistd.h>
const char *bssid_to_string(const uint8_t bssid[BSSID_LENGTH], char bssid_string[BSSID_STRING_LENGTH])
{
snprintf(bssid_string, BSSID_STRING_LENGTH, "%02x:%02x:%02x:%02x:%02x:%02x",
bssid[0], bssid[1], bssid[2], bssid[3], bssid[4], bssid[5]);
printf("%x\n", bssid[5]);
return bssid_string;
}
int main(int argc, char **argv){
struct wifi_scan *wifi=NULL;
struct station_info station;
char mac[BSSID_STRING_LENGTH];
wifi=wifi_scan_init(argv[1]);
wifi_scan_station(wifi, &station);
printf("ssid = %s mac = %s \n", station.ssid, bssid_to_string(station.bssid, mac));
wifi_scan_close(wifi);
}