C\#로 컬 유 니 버 설 네트워크 카드 정 보 를 얻 는 예제 코드

네 임 스페이스 의 Management Object Searcher 류 와 그 방법 Get 을 사용 하여 유 니 버 설 네트워크 카드 정 보 를 얻 을 수 있 습 니 다.
그 중에서 가장 중요 한 것 은 Management Object Searcher 구조 함수 의 입력 매개 변수 로 다음 과 같은 Query String 에 들 어 갈 수 있 습 니 다.
SELECT * FROM Win32_NetworkAdapterConfiguration
다음 의 예 는 로 컬 네트워크 카드 의 설정 정 보 를 파일 에 기록 하고 저장 하 는 것 입 니 다.코드 는 다음 과 같 습 니 다.

using System.IO;
using System.Linq;
using System.Management;

namespace ConsoleApp
{
  class Program
  {
    static void Main(string[] args)
    {
      ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration") ;
      ManagementObjectCollection managementObjectCollection = managementObjectSearcher.Get();
      StreamWriter writer = new StreamWriter("result.csv");
      bool isFirstRow = true;
      foreach (ManagementObject managementObject in managementObjectCollection)
      {
        string header = string.Empty;
        string content = string.Empty;
        string separator1 = ",";
        string separator2 = " | ";
        foreach (var item in managementObject.Properties)
        {
          if (isFirstRow)
          {
            header = $"{header}{separator1}{item.Name}";
          }
          string valueTemp = string.Empty;
          if (item.Value != null)
          {
            if (item.Value is string[] || item.Value is ushort[])
            {
              string[] valuesStrTemp;
              if(item.Value is ushort[])
                valuesStrTemp = ((ushort[])item.Value).Select(x => x.ToString()).ToArray();
              else
                valuesStrTemp = item.Value as string[];

              for (int i = 0; i < valuesStrTemp.Length; i++)
              {
                valueTemp = $"{valueTemp}{separator2}{valuesStrTemp[i]}";
              }
              if(valuesStrTemp.Length != 0)
                valueTemp = valueTemp.Remove(0, separator2.Length);
            }
            else
              valueTemp = item.Value.ToString();
          }
          content = $"{content}{separator1}{valueTemp}";
        }
        if (isFirstRow)
        {
          header = header.Remove(0, separator1.Length);
          writer.WriteLine(header);
          isFirstRow = false;
        }
        content = content.Remove(0, separator1.Length);
        writer.WriteLine(content);
      }
      writer.Close();
    }
  }
}
실행 결 과 는 다음 과 같 습 니 다.

이상 은 C\#로 컬 유 니 버 설 네트워크 카드 정 보 를 얻 을 수 있 는 예제 코드 의 상세 한 내용 입 니 다.c\#네트워크 카드 정 보 를 얻 을 수 있 는 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기