问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用c#来获得电脑使用中的网卡硬件的MAC地址。

发布网友 发布时间:2023-08-11 01:02

我来回答

3个回答

热心网友 时间:2024-09-29 22:23

C#判断是否存在已连接的真实网卡

这个问题可以拆成两个小问题:

1、如何判断一个网卡是否为真实网卡(即物理网卡),因为可能还有虚拟网卡,比如装了某个虚拟机;
2、如何判断一个网卡有没有连接(连接不代表就能上Internet)。

注:这里的网卡确切地应该叫网络适配器(Network Adapter)。

用C#获取硬件信息最方便的莫过于WMI了,与网卡相关的信息就在Win32_NetworkAdapter这个类里面了。

第一个问题:在Win32_NetworkAdapter里有个叫PNPDeviceID的字符串属性,官方的说明是Windows
Plug and Play device identifier of the logical device。如果这个属性的前3个字符是PCI,
那么这就是本机的真实网卡(不要问我为什么,我也想知道),包括无线网卡。

第二个问题:还是在Win32_NetworkAdapter里有个名为NetConnectionStatus的uint16类型的属性,其中2代表已连接,7代表断开。其他各值的含义请参见MSDN。

OK,问题解决,最终的代码为:

ManagementObjectSearcher s = new ManagementObjectSearcher(
     @"SELECT
DeviceID FROM Win32_NetworkAdapter WHERE NetConnectionStatus=2 AND PNPDeviceID
LIKE 'PCI%'");
return s.Get().Count > 0; //True表示存在已连接的真实网卡,False反之。

记得添加using System.Management;和对System.Management.dll的引用。

using System;
using System.Management;
using System.Windows.Forms;

namespace WMISample
{
    public class MyWMIQuery
    {
        public static void Main()
        {
            try
            {
                ManagementObjectSearcher searcher = 
                    new ManagementObjectSearcher("root\\CIMV2", 
                    "SELECT * FROM Win32_NetworkAdapter"); 

                foreach (ManagementObject queryObj in searcher.Get())
                {
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("Win32_NetworkAdapter instance");
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("NetConnectionStatus: {0}", queryObj["NetConnectionStatus"]);
                    Console.WriteLine("PNPDeviceID: {0}", queryObj["PNPDeviceID"]);
                }
            }
            catch (ManagementException e)
            {
                MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
            }
        }
    }
}

热心网友 时间:2024-09-29 22:24

嘿嘿,我每次就直接在开始|运行里,获取的所有的MAC地址了也。
不知道有没有你所说的虚拟网卡呢。

开始|运行|输入“cmd”|再输入“ipconfig -all”,回车就行。追问我是想用c#代码来获取,是编程。谢谢。

追答哦哦~~

热心网友 时间:2024-09-29 22:24

NetworkInterface.GetAllNetworkInterfaces();
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
自轻自贝是什么意思 舌头开裂是什么病 去除暖水瓶中的水垢的小窍门 暖瓶有水垢用什么办法除掉(暖瓶水垢太厚清除妙招) 怎样恢复误删的相片? 冬天水泥多久不怕冻 学生假期生活小结:如何充实有意义地度过假期 假期应该和孩子如何度过每一天? 福建管道清洗厂家 对女生说了我养你啊,女生说你怕是不知道养一个人的概念,怎么把这个问 ... 为什么我一打开迅雷,进程都上到90几呢?求大神帮助 听说三星中央空调有独特的送风模式,无风感是什么样的感受呢? 友邦充裕人生B款年金保险表现好吗?收益率如何呢? 把秋思改写成一个小故事200字急!!!别抄和复制 ...了男主的孩子[穿书]》txt下载在线阅读全文,求百度网盘云资源... 为什么我的电脑除了搜狐视频 其他的都能看 为什么我家可以打开网站,去搜狐看视频打不开,百度 奇艺视频都不能... 在电脑上如何检查网络连接故障 He went to the Shanghai History Museum last Sunda 数九天都在什么季节 从冬至到春暖花开一共有多少天 美国中小学老师税后年薪大概多少 从阳春火车站罗阳镇怎么走? 阳春市粤运汽车站到博罗县罗阳镇怎么坐车 请问。我在深圳福田区到广东省阳春市阳春监狱一号大院探亲。最快捷的... 广州走罗阳公速到阳春怎走 求《彩云追月》歌词英文翻译 衣服上有陈旧的酱油污渍还能洗掉不? SQL server 2005无法连接到服务器,麻烦哪位高手帮忙看一下。谢谢了... ...2005本地服务器为空怎么办?sqlserver2005连接不上服务器的处理方法... 夏普2048s复印机,不管是打印还是复印,在A4纸的右侧出现一列窄字,甚至... 夏普2048s打印出来有一列字变窄了,其中这一列字越往下逐渐趋于正常了... 夏普2048S打印和复印时都会在一边出现宽宽的黑条? 九五年阴历八月二十五是什么星座 农历1995年8月25日什么星座 农历八月二十五日是什么星座 太平洋金典人生重疾险靠不靠谱?值得买吗? 太平洋寿险靠谱不? 心理咨询师证书取消了么 有没有适合两岁半宝宝吃的益生菌?宝宝有点便秘 被投诉举报封号了怎么办 梦见山楂是什么预兆 2011年广西柳州退伍军人退伍费问题,我准备退伍的时候领了9000快部队发... 明日は山间部は晴れたり昙ったりの天気でしょう ...提示只有有管理员权限才可以删除,那个要怎么删掉。 信用卡刷卡多少钱,会被银行怀疑?会打电话 ...的手机号已注销。记得账号与密码换设备登陆需要手机短信验证... 香港友邦的重疾险哪种好一些?值不值得买? 纠结于下列几款相机:尼康P300、S8100、S9100,奥林巴斯SZ10、SZ11。 那款数码相机拍出的照片鲜艳?