可以通过使用命名空间下的managementobjectsearcher类及其方法get来获得通用网卡信息。

其中,最重要的是managementobjectsearcher构造函数的输入参数,可以传入以下的querystring。

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# 获得网卡信息的资料请关注www.887551.com其它相关文章!