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

可以通过使用命名空间下的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# 获得网卡信息的资料请关注我们其它相关文章!

(0)

相关推荐

  • C#获取机器码的方法详解(机器名,CPU编号,硬盘编号,网卡mac等)

    本文实例讲述了C#获取机器码的方法.分享给大家供大家参考,具体如下: using System.Runtime.InteropServices; using System.Management; using System; public class HardwareInfo { //取机器名 public string GetHostName() { return System.Net.Dns.GetHostName(); } //取CPU编号 public String GetCpuID()

  • C# 多网卡 Server Listen

    VC和BCB中做一个Server的监听程序,只需要指定端口,然后监听(Listen)就行了.在C#找不到这个函数了,慢慢看MSDN,怎么需要指定IP和Port才能监听,那么多网卡的机器应该怎么写程序呢?下面的程序可以解释怎么去做.  TcpListener 类别会提供简易的方法,用以在封锁的同步模式中聆听 (Listen) 和接受输入的连接要求.您可以使用 TcpClient 或 Socket 来连接 TcpListener .使用 IPEndPoint .本机 IP 地址和连接端口编号,或者就

  • C#获得MAC地址(网卡序列号)的实现代码

    代码如下: 复制代码 代码如下: //获得网卡序列号    public string GetMoAddress()    {        string MoAddress = " ";        ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");        ManagementObjectCollection moc2 = mc.GetInstanc

  • 用C#获取硬盘序列号,CPU序列号,网卡MAC地址的源码

    privatestring[]GetMoc() { string[]str=newstring[3]; ManagementClassmcCpu=newManagementClass("win32_Processor"); ManagementObjectCollectionmocCpu=mcCpu.GetInstances(); foreach(ManagementObjectminmocCpu) { str[0]=m["ProcessorId"].ToStrin

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

    可以通过使用命名空间下的ManagementObjectSearcher类及其方法Get来获得通用网卡信息. 其中,最重要的是ManagementObjectSearcher构造函数的输入参数,可以传入以下的QueryString. SELECT * FROM Win32_NetworkAdapterConfiguration 以下的例子为将本地网卡的配置信息写入一个文件并保存,代码如下: using System.IO; using System.Linq; using System.Mana

  • Android本地视频压缩方案的示例代码

    前言 本文讨论的不是类似秒拍的短视频录制,而是用户选择本地一个现有视频,压缩后上传.秒拍的实现其实是自定义视频录制功能,从而控制录制时长,分辨率,码率等,生成体积很小的视频再上传.而我们则没办法控制原视频的参数,可能是一个很大的视频需要压缩处理. 思路 利用ffmpeg对视频转码,通过设定参数生成分辨率和码率更小的视频,实现压缩.当然,ffmpeg的功能远不止如此,这是一个很大的专题. 用到的开源库:https://github.com/WritingMinds/ffmpeg-android-j

  • MongoDB批量将时间戳转为通用日期格式示例代码

    前言 时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间.本文将详细介绍MongoDB批量将时间戳转为通用日期格式的相关内容,下面话不多说了,来一起看看详细的介绍吧 1,官网提供的MONGODB遍历脚本: 官方文档地址:https://docs.mongodb.org/manual/tutorial/remove-documents/ >var arr = ["ab","cd","ef"] >var show =

  • js 浏览本地文件夹系统示例代码

    复制代码 代码如下: function BrowseFolder(){ try{ var Message = "请选择文件夹"; //选择框提示信息 var Shell = new ActiveXObject( "Shell.Application" ); var Folder = Shell.BrowseForFolder(0,Message,0x0040,0x11);//起始目录为:我的电脑 //var Folder = Shell.BrowseForFolde

  • Express本地测试HTTPS的示例代码

    我的环境 亚马逊(AWS)的一个ubuntu虚拟机. node openssl 生成证书 输入如下命令会在你的当前文件夹生成localhost.key和localhost.cert. openssl genrsa -out localhost.key 2048 openssl req -new -x509 -key localhost.key -out localhost.cert -days 3650 -subj /CN=localhost 其中localhost为域名. 想要换成别的域名就直

  • Java 批量文件压缩导出并下载到本地示例代码

    主要用的是org.apache.tools.zip.ZipOutputStream  这个zip流,这里以Execl为例子. 思路首先把zip流写入到http响应输出流中,再把excel的流写入zip流中(这里可以不用生成文件再打包,只需把execl模板读出写好数据输出到zip流中,并为每次的流设置文件名) 例如:在项目webapp下execl文件中 存在1.xls,2.xls,3.xls文件 1.Controller @RequestMapping(value = "/exportAll&qu

  • python实现本地图片转存并重命名的示例代码

    //有1-22个文件夹,各文件夹下有Detect_0文件夹,此文件夹下有source与mask文件夹,目的是将需要获取图片的 文件夹下的图片复制到新的文件夹下并按顺序重命名 import os import shutil //删除之前文件夹并新建空文件夹 shutil.rmtree(r'E:\\all_project\\picture') os.makedirs("E:\\all_project\\picture\\source\\") os.makedirs("E:\\al

  • Vue+mui实现图片的本地缓存示例代码

    下面一段代码给大家分享基于Vue+mui实现图片的本地缓存,具体代码如下所示: const menu = { state: { products: {}, GLOBAL_CONFIG:GLOBAL_CONFIG['GLOBAL_CONFIG'] }, mutations: { get_product: function (state, products) { //商品列表 state.products = products; for(let i = 0; i < state.products.l

  • Java基于LoadingCache实现本地缓存的示例代码

    目录 一. 添加 maven 依赖 二.CacheBuilder 方法说明 三.创建 CacheLoader 四.工具类 五.guava Cache数据移除 一. 添加 maven 依赖 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>27.1-jre</version> </depend

  • Anroid四大组件service之本地服务的示例代码

    服务是Android四大组件之一,与Activity一样,代表可执行程序.但Service不像Activity有可操作的用户界面,它是一直在后台运行.用通俗易懂点的话来说: 如果某个应用要在运行时向用户呈现可操作的信息就应该选择Activity,如果不是就选择Service. Service的生命周期如下: Service只会被创建一次,也只会被销毁一次.那么,如何创建本地服务呢? 实现代码如下: package temp.com.androidserivce; import android.a

随机推荐