No Rules Rules

유무선 랜카드(어댑터) 정보 읽기 본문

언어/C++

유무선 랜카드(어댑터) 정보 읽기

개발하는 완두콩 2023. 8. 29. 08:02
728x90
반응형

현재 내 pc의 모든 랜카드 정보 (WiFi 포함) 를 읽기 위한 구문입니다.

복수의 랜카드 정보를 읽을 수 있으므로 어댑터 이름이나 아이피 정보 등을 읽기 위해 활용할 수 있습니다.

 

반응형

 

	ULONG flag(0);
	IP_ADAPTER_INFO adapter_info[50]{ 0 };			// 랜카드(어댑터)는 최대 50개가 있다고 가정
    PIP_ADAPTER_INFO tmp_adapter_info(nullptr);
	ULONG adater_info_size(0);
    PIP_ADDR_STRING addr_string(nullptr);
	std::vector<CString> lists

    // check buffer size
	flag = GetAdaptersInfo(nullptr, &adater_info_size);	// 모든 어댑터 정보의 byte size
	if (adater_info_size <= 0)
		return false;
	flag = GetAdaptersInfo(adapter_info, &adater_info_size);
	tmp_adapter_info = adapter_info;
    // 어댑터 정보 얻어오기    
    if ((flag = GetAdaptersInfo(adapter_info, &adater_info_size)) != 0)
        return false;
    while (tmp_adapter_info) {
		addr_string = &(tmp_adapter_info->IpAddressList);
		while (addr_string) {
			auto ip_addr = CString(addr_string->IpAddress.String);	// 어댑터의 IP Address
			if (ip_addr.Compare(_T("0.0.0.0")))	// Static으로 설정된 어댑터 정보만 가져오기 위해 0.0.0.0인 경우(Auto인 경우)는 제외
				lists.push_back(ip_addr);
			addr_string = addr_string->Next;	// 하나의 어댑터에 여러 IP Address가 설정되어 있는 경우도 처리
		}
		tmp_adapter_info = tmp_adapter_info->Next;	// 다음 어댑터 정보
    }
728x90
반응형
Comments