我可以从Linux中的C代码中获取SSID和MAC地址吗?
我正在为我的Majaro Linux编写一个C备份程序。只有在连接到家庭网络时,它才能在家庭本地服务器中的特定时间备份文件。因此,我需要获取当前网络的SSID和MAC地址,以确定它是否是我的网络 是否有Linux(Arch)默认命令、C库函数或文件包含此信息 我已经尝试了一些Linux工具,例如ifconfig,但对我来说没用 救命啊 完成 谢谢你们所有人的帮助,尤其是对这件事的帮助。 它工作得很好 这正是我一直在寻找的 我只是把它添加到我的主要项目中我可以从Linux中的C代码中获取SSID和MAC地址吗?,c,networking,ssid,C,Networking,Ssid,我正在为我的Majaro Linux编写一个C备份程序。只有在连接到家庭网络时,它才能在家庭本地服务器中的特定时间备份文件。因此,我需要获取当前网络的SSID和MAC地址,以确定它是否是我的网络 是否有Linux(Arch)默认命令、C库函数或文件包含此信息 我已经尝试了一些Linux工具,例如ifconfig,但对我来说没用 救命啊 完成 谢谢你们所有人的帮助,尤其是对这件事的帮助。 它工作得很好 这正是我一直在寻找的 我只是把它添加到我的主要项目中 #include "../wifi_sca
#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);
}
#包括“./wifi\u scan.h”
#包括
#包括
const char*bssid_到_字符串(const uint8_t bssid[bssid_长度]、char bssid_字符串[bssid_字符串长度])
{
snprintf(bssid字符串,bssid字符串长度,“%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x”,
bssid[0]、bssid[1]、bssid[2]、bssid[3]、bssid[4]、bssid[5];
printf(“%x\n”,bssid[5]);
返回bssid_字符串;
}
int main(int argc,字符**argv){
结构wifi_scan*wifi=NULL;
结构站\信息站;
字符mac[BSSID_字符串_长度];
wifi=wifi扫描初始化(argv[1]);
wifi_扫描_站(wifi和站点);
printf(“ssid=%s mac=%s\n”,station.ssid,bssid_to_字符串(station.bssid,mac));
wifi\u扫描\u关闭(wifi);
}
也许libpcap库有助于在c程序中获取有关网络的一些信息。您可能想看看:这实际上是一个linux问题,而不是c问题。您需要的是提供这些数据的linux库。在您的C代码中链接到这些库,您就很好了。这里有一个例子:这是一个很好的wifi扫描仪的实现,您可能会感兴趣。