博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c# 、 Asp.net 获取本地IP和MAC地址
阅读量:5139 次
发布时间:2019-06-13

本文共 2788 字,大约阅读时间需要 9 分钟。

using System;  using System.Management;  using System.Net;     public class Program      {          static void Main(string[] args)          {              try              {                  string ip = "";                  string mac = "";                  ManagementClass mc;                  string hostInfo = Dns.GetHostName();                  //IP地址                  //System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;这个过时                    System.Net.IPAddress[] addressList = Dns.GetHostEntry(Dns.GetHostName()).AddressList;                  for (int i = 0; i < addressList.Length; i++)                  {                      ip = addressList[i].ToString();                  }                  //mac地址                  mc = new ManagementClass("Win32_NetworkAdapterConfiguration");                  ManagementObjectCollection moc = mc.GetInstances();                  foreach (ManagementObject mo in moc)                  {                      if (mo["IPEnabled"].ToString() == "True")                      {                          mac = mo["MacAddress"].ToString();                      }                  }                  //输出                  string outPutStr = "IP:{0},\n MAC地址:{1}";                  outPutStr = string.Format(outPutStr, ip, mac);                  Console.WriteLine(outPutStr);              }              catch (Exception e)              { }              Console.ReadLine();          }      }

 第二种方式

///         /// 获取Mac地址        ///         ///         ///         ///         ///         /// 
[DllImport("Iphlpapi.dll")] public static extern uint SendARP(uint DestIP, uint SrcIP, ref ulong pMacAddr, ref uint PhyAddrLen); public static string GetMac() { string p_Id = GetInternalIP(); IPAddress _Address; if (!IPAddress.TryParse(p_Id, out _Address)) return ""; uint DestIP = System.BitConverter.ToUInt32(_Address.GetAddressBytes(), 0); ulong pMacAddr = 0; uint PhyAddrLen = 6; uint error_code = SendARP(DestIP, 0, ref pMacAddr, ref PhyAddrLen); byte[] _Bytes1 = BitConverter.GetBytes(pMacAddr); return BitConverter.ToString(_Bytes1, 0, 6); } //获取内网IP protected static string GetInternalIP() { IPHostEntry host; string localIP = "?"; host = Dns.GetHostEntry(Dns.GetHostName()); foreach (IPAddress ip in host.AddressList) { if (ip.AddressFamily.ToString() == "InterNetwork") { localIP = ip.ToString(); break; } } return localIP; }

 

转载于:https://www.cnblogs.com/youmingkuang/p/6781392.html

你可能感兴趣的文章
tmux的简单快捷键
查看>>
[Swift]LeetCode922.按奇偶排序数组 II | Sort Array By Parity II
查看>>
php match_model的简单使用
查看>>
Vue_(组件通讯)子组件向父组件传值
查看>>
移动开发平台-应用之星app制作教程
查看>>
如何在maven工程中加载oracle驱动
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
下一代操作系统与软件
查看>>
Python IO模型
查看>>
DataGridView的行的字体颜色变化
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Android-多线程AsyncTask
查看>>
LeetCode【709. 转换成小写字母】
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
【题解】青蛙的约会
查看>>
autopep8
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>