Могу ли я получить SSID и MAC-адрес из кода C в Linux? - PullRequest
0 голосов
/ 16 июня 2019

Я пишу программу резервного копирования C для моего Majaro Linux . Он должен создавать резервные копии файлов в определенное время на моем домашнем локальном сервере, только если я подключаюсь к своей домашней сети. Поэтому мне нужно получить SSID и MAC-адрес текущей сети, чтобы решить, является ли она моей сетью.

Есть ли Linux (Arch) команды по умолчанию, функции библиотеки C или файлы, содержащие эту информацию?

Я уже пробовал некоторые Linux инструменты, например ifconfig , но для меня это бесполезно.

Помощь!

1 Ответ

1 голос
/ 16 июня 2019

Готово

Спасибо всем за помощь, особенно Илья Илиев и эта библиотека .Это прекрасно работает.

Это именно то, что я основал!

Я просто добавил его в свой основной проект.

#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);

    }
...