方法一:利用注册表

using System;using Microsoft.Win32;class CardGrab{public static void Main (){RegistryKey start = Registry.LocalMachine;RegistryKey cardServiceName, networkKey;string networkcardKey = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards";string serviceKey = "SYSTEM\\CurrentControlSet\\Services\\";string networkcardKeyName, deviceName;string deviceServiceName, serviceName;RegistryKey serviceNames = start.OpenSubKey(networkcardKey);if (serviceNames == null){Console.WriteLine("Bad registry key");return;}string[] networkCards = serviceNames.GetSubKeyNames();serviceNames.Close();foreach(string keyName in networkCards){networkcardKeyName = networkcardKey + "\\" + keyName;cardServiceName = start.OpenSubKey(networkcardKeyName);if (cardServiceName == null){Console.WriteLine("Bad registry key: {0}",networkcardKeyName);return;}deviceServiceName =(string)cardServiceName.GetValue("ServiceName");deviceName = (string)cardServiceName.GetValue("Description");Console.WriteLine("\nNetwork card: {0}", deviceName);serviceName = serviceKey + deviceServiceName + "\\Parameters\\Tcpip";networkKey = start.OpenSubKey(serviceName);if (networkKey == null){Console.WriteLine("  No IP configuration set");}else{string[] ipaddresses =(string[])networkKey.GetValue("IPAddress");string[] defaultGateways =(string[])networkKey.GetValue("DefaultGateway");string[] subnetmasks =(string[])networkKey.GetValue("SubnetMask");foreach(string ipaddress in ipaddresses){Console.WriteLine("  IP Address: {0}",ipaddress);}foreach(string subnetmask in subnetmasks){Console.WriteLine("  Subnet Mask: {0}", subnetmask);}foreach(string defaultGateway in defaultGateways){Console.WriteLine("  Gateway: {0}",defaultGateway);}networkKey.Close();}}start.Close();Console.ReadLine();}}

方法二:使用WMI

先添加System.Management.dll的引用

using System;using System.Management;class WMICardGrab{public static void Main (){ManagementObjectSearcher query = newManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'");ManagementObjectCollection queryCollection = query.Get();foreach( ManagementObject mo in queryCollection ){string[] addresses = (string[])mo["IPAddress"];string[] subnets = (string[])mo["IPSubnet"];string[] defaultgateways =(string[])mo["DefaultIPGateway"];Console.WriteLine("Network Card: {0}",mo["Description"]);Console.WriteLine("  MAC Address: {0}",mo["MACAddress"]);foreach(string ipaddress in addresses){Console.WriteLine("  IP Address: {0}", ipaddress);}foreach(string subnet in subnets){Console.WriteLine("  Subnet Mask: {0}", subnet);}foreach(string defaultGateway in defaultGateways){Console.WriteLine("Gateway{0}",defaultGateway);}}}
}

C# 如何取得本机网卡的型号,IP地址,子网掩码和网关相关推荐

  1. C++ 获取本机所有的网卡配置、IP地址和Mac地址

    一台机器上可能不只有一个网卡,但每一个网卡只有一个MAC地址,而每一个网卡可能配置有多个IP地址:如平常的笔记本电脑中,就会有无线网卡和有线网卡(网线接口)两种:因此,如果要获得本机所有网卡的IP和M ...

  2. 烂泥:更换ESXI5.0管理网卡及管理IP地址

    公司的服务器基本上都是在IDC机房里面的,为了更有效的利用服务器性能.所以有几台服务器,安装的是ESXI5.0做成虚拟化. 注意目前这些服务器都是双网卡的. 因为不是自己安装的ESXI,都是机房那边安 ...

  3. C++获取网卡名称和IP地址

    获取网卡名称和IP地址 windows下建议用windows API来获取 参考链接 linux下可用pcap或者是getifaddrs API(如果不需要MAC地址的话推荐)来获取 参考链接 #if ...

  4. linux双网卡绑定同一IP步骤,linux系统双网卡绑定单个IP地址

    双网卡绑定单个IP地址为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断.多网卡绑. 为了提供网络的高可用性,我们可能 ...

  5. 本机获取Intel AMT IP地址的例子

    转自:http://software.intel.com/zh-cn/blogs/2009/02/10/intel-amt-ip/?cid=sw:51cto    Intel AMT的IP地址设置有两 ...

  6. linux如何使用eth0网卡,Linux运维学习之如何取出网卡eth0的ip地址?

    Linux运维基础学习中,关于awk了解多少呢?咱们今天就来简单了解下如何取出网卡eth0的ip地址. hostname -I awk处理: 方法一: [root@oldboy files]# ifc ...

  7. Centos8、Centos7解决Ens33网卡不显示IP地址的问题。

    @Centos8.Centos7解决Ens33网卡不显示IP地址的问题. Centos8.Centos7解决Ens33网卡不显示IP地址的问题. Centos8和Centos7有很多相似之处.对于En ...

  8. 更换主板后删除旧主板网卡配置的IP地址信息

    更换主板后删除旧主板网卡配置的IP地址信息 为了方便管理,公司域用户客户端一般为固定内网IP,客户端主板更换后,如果没有重装系统的情况下,最好把旧主板的网卡IP信息删除 方法如下: 打开注册表REGE ...

  9. linux网卡永久生效命令,Linux/CentOS服务器 一个网卡绑定多IP地址(永久设置)

    Linux/CentOS服务器 一个网卡绑定多IP地址(永久设置) 有时我们在使用 Linux 服务器时需要配置多个IP地址.如果要配置多个IP地址是否需要多块网卡呢?答案是否定的.以 CentOS ...

  10. Linux网卡配置虚拟IP地址

    虚拟ip作用: 配置虚拟ip也就是说一个网卡有多个ip地址,更方便多个网段之间进行测试使用! 缺点是当网卡坏掉之后 基于这个网卡的所有虚拟网卡都会失效!!! 步骤如下: 1.查看内网ip地址 [roo ...

最新文章

  1. php虚拟内存设置,虚拟内存有什么用
  2. 用算法识别水流模式,AI探测到962起污水泄漏事件
  3. Oracle 11.2 安装Oracle 11.1的HR schoma
  4. Linux Unix C 中的curses库——curses.h
  5. linux过滤输出内容,Linux内容整理--过滤器、输入输出及管道
  6. raise主动引发异常
  7. @ModelAttribute运用详解
  8. 【JAVA线程间通信技术】
  9. ExtJs - grid 合并单元格 跨行跨列
  10. PCB Layout各层含义与分层原则
  11. microLED可能在智能手机市场取代OLED
  12. 只有程序员才懂的笑话
  13. 消除switch/case语句,不破坏代码的封闭性,使程序结构更符合面向对象思想(二)
  14. MIMIC-CXR数据集的下载
  15. python爬虫实战三:近十年中国电影票房数据爬取与分析
  16. 企业如何成功?先看公司战略(二)
  17. Flutter-常用插件汇总
  18. QGraphicsView创建悬浮按钮
  19. 51单片机(三)独立按键控制LED
  20. conda安装与软件安装

热门文章

  1. 如何构建电商用户画像
  2. 搭建一个自己的电影网站?如何做呢
  3. Windows10企业版中安装Docker
  4. 什么是反应式编程? 这里有你想要了解的反应式编程 (Reactive programming)
  5. OpenGL ES glut glew glfw glad freeglut
  6. 请仔细品味--俞敏洪励志演讲
  7. AI初学者必看的4个顶级人工智能领域岗位
  8. 二叉树的遍历(前序遍历,中序遍历,后序遍历)
  9. autoconf 遇到的坑
  10. 如何撰写国内外研究现状