액세스 포인트 목록은 어디에 저장되어 있나요?

액세스 포인트 목록은 어디에 저장되어 있나요?

어디나미클리그리고목록표시된 액세스 포인트의 캐시된 목록을 공용 파일에 저장합니까, 아니면 휘발성 메모리에 저장합니까?

답변1

nmcli소스코드( ) 를 잠깐 살펴보면 $ apt-get source network-managerAP 정보를 담고 있는 구조체( )가 src/devices/wifi/nm-wifi-ap.c휘발성 메모리에 저장되어 있는 것으로 보인다(구조가 동적으로 할당되는지, 정적으로 할당되는지는 잘 모르겠으나 전자를 사용하겠다) ).

구조는 다음과 같습니다(실제로는 두 개가 있습니다).

typedef struct {
char *supplicant_path;   /* D-Bus object path of this AP from wpa_supplicant */

/* Scanned or cached values */
GByteArray *       ssid;
char *             address;
NM80211Mode        mode;
guint8             strength;
guint32            freq;        /* Frequency in MHz; ie 2412 (== 2.412 GHz) */
guint32            max_bitrate; /* Maximum bitrate of the AP in Kbit/s (ie 54000 Kb/s == 54Mbit/s) */

NM80211ApFlags         flags;      /* General flags */
NM80211ApSecurityFlags wpa_flags;  /* WPA-related flags */
NM80211ApSecurityFlags rsn_flags;  /* RSN (WPA2) -related flags */

/* Non-scanned attributes */
bool                fake:1;       /* Whether or not the AP is from a scan */
bool                hotspot:1;    /* Whether the AP is a local device's hotspot network */
gint32              last_seen;  /* Timestamp when the AP was seen lastly (obtained via nm_utils_get_monotonic_timestamp_s()) */
} NMWifiAPPrivate;

struct _NMWifiAP {
    NMExportedObject parent;
    NMWifiAPPrivate _priv;
};

코드를 깊게 파고들지 않아서 틀릴 수도 있지만 이 구조는 호출할 때 할당되고 구현되고 nmcli device wifi list, 명령이 종료되면 소멸되는 것 같아요. 어쩌면 파일이나 메모리 덤프에 일종의 "저장된 상태"를 의미하는 더 복잡한 함수가 있을 수도 있지만 지금은 말할 수 없습니다.

(실제로 코드를 보지 않고는) iwlist와 대화할 수 없습니다.

실제로 답변은 아니기 때문에 댓글로 게시하겠습니다. 하지만 분명히 너무 깁니다.

고쳐 쓰다

보고 있다nmcli github 페이지, 이는 다음과 같습니다.

NetworkManager 데몬은 권한 있는 서비스로 실행되지만(하드웨어에 액세스하고 제어해야 하기 때문에) 네트워크를 세밀하게 제어할 수 있도록 시스템 버스에 D-Bus 인터페이스를 제공합니다. NetworkManager는 연결이나 설정을 저장하지 않으며 단지 이러한 연결을 선택하고 활성화하기 위한 메커니즘일 뿐입니다.

미리 정의된 네트워크 연결을 저장하기 위해 두 개의 독립적인 서비스 "시스템 설정 서비스"와 "사용자 설정 서비스"가 연결 정보를 저장하고 이 정보를 D-Bus를 통해 NetworkManager에 제공합니다. 각 설정 서비스는 연결 정보를 지속적으로 저장하는 방법과 위치를 결정합니다. 예를 들어 GNOME 애플릿은 해당 구성을 GConf에 저장하고, 시스템 설정 서비스는 해당 구성을 배포별 또는 배포 독립적인 형식으로 저장합니다. 사용자/관리자 기본 설정에 따라 다릅니다.

관련 정보