欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# 获得本地通用网卡信息的示例代码

程序员文章站 2022-04-01 13:08:11
可以通过使用命名空间下的managementobjectsearcher类及其方法get来获得通用网卡信息。其中,最重要的是managementobjectsearcher构造函数的输入参数,可以传入...

可以通过使用命名空间下的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# 获得本地通用网卡信息的示例代码的详细内容,更多关于c# 获得网卡信息的资料请关注其它相关文章!

相关标签: c# 网卡信息