当前位置: 首页 > news >正文

c#获取本机的MAC地址(附源码)

        在前一次的项目中,突然用到了这个获取本机的MAC地址,然后就研究了一下,记录下来,防止以后再用到,

        使用winfrom做的,界面一个button,一个textBox,点了button以后给textBox赋值显示mac地址

附上源码

 private void button3_Click(object sender, EventArgs e){try{string macAddress = GetMacAddress();if (!string.IsNullOrEmpty(macAddress)){textBox1.Text = macAddress;}else{MessageBox.Show("未能获取到MAC地址。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);}}catch (Exception ex){MessageBox.Show($"获取MAC地址时出现错误:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);}}private string GetMacAddress(){try{string macAddress = string.Empty;foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()){/// 仅考虑以太网的网络接口if (nic.NetworkInterfaceType == NetworkInterfaceType.Ethernet && nic.OperationalStatus == OperationalStatus.Up){// 获取网络接口的MAC地址macAddress = nic.GetPhysicalAddress().ToString();// 将连续的十六进制数格式化为带冒号分隔符的形式macAddress = FormatMacAddress(macAddress);if (!string.IsNullOrEmpty(macAddress))break;}}return macAddress;}catch (UnauthorizedAccessException){throw new Exception("没有足够的权限来访问网络接口信息,请以管理员身份运行程序。");}catch (Exception ex){throw new Exception($"获取MAC地址时出现错误:{ex.Message}");}}// 使用正则表达式将连续的十六进制数格式化为带冒号分隔符的形式private string FormatMacAddress(string macAddress){return Regex.Replace(macAddress, @"(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})", "$1:$2:$3:$4:$5:$6");}

http://www.lryc.cn/news/398641.html

相关文章:

  • sqlmap使用之-post注入、head注入(ua、cookie、referer)
  • XSS: 原理 反射型实例[入门]
  • Idea新增Module报错:sdk ‘1.8‘ type ‘JavaSDK‘ is not registered in ProjectJdkTable
  • 基于RHCE基础搭建简单服务
  • 威纶通触摸屏软件离线仿真时出现报错8000端口占用或服务器断线
  • CAS详解
  • 【笔记】虚拟机中的主从数据库连接实体数据库成功后的从数据库不同步问题解决方法2
  • 【每日一练】python类和对象现实举例详细讲解
  • 【学习css1】flex布局-页面footer部分保持在网页底部
  • Java中创建线程的几种方式
  • [A-04] ARMv8/ARMv9-Cache的相关策略
  • 【笔试常见编程题06】最近公共祖先、求最大连续bit数、二进制插入、查找组成一个偶数最接近的两个素数
  • 【工具分享】Gophish——网络钓鱼框架
  • “职业三大底层逻辑“是啥呢?
  • 飞睿智能无线高速uwb安全数据传输模块,低功耗、抗干扰超宽带uwb芯片传输速度技术新突破
  • 手把手教你从微信中取出聊天表情图片,以动态表情保存为gif为例
  • 【深度学习】图形模型基础(5):线性回归模型第三部分:线性回归模型拟合
  • 【Git 入门】初始化配置与新建仓库
  • C语言 求两个整数的最大公约数和最小公倍数
  • Linux arm64平台指令替换函数 aarch64_insn_patch_text_nosync
  • 谷歌浏览器插件开发笔记0.1.033
  • ETag:Springboot接口如何添加Tag
  • JavaSe系列二十七: Java正则表达式
  • (深度估计学习)Depth Anything V2 复现
  • C语言——printf、scanf、其他输入输出函数
  • adb 常用的命令总结
  • Java发展过程中,JVM的演进
  • 笔记:在Entity Framework Core中如何处理多线程操作DbContext
  • RabbitMQ 高级功能
  • 软件架构之开发管理