zoukankan      html  css  js  c++  java
  • c# 、 Asp.net 获取本地IP和MAC地址

    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},
     MAC地址:{1}";  
                    outPutStr = string.Format(outPutStr, ip, mac);  
                    Console.WriteLine(outPutStr);  
                }  
                catch (Exception e)  
                { }  
                Console.ReadLine();  
            }  
        }  

     第二种方式

             
            /// <summary>
            /// 获取Mac地址
            /// </summary>
            /// <param name="DestIP"></param>
            /// <param name="SrcIP"></param>
            /// <param name="pMacAddr"></param>
            /// <param name="PhyAddrLen"></param>
            /// <returns></returns>
            [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;
            }
  • 相关阅读:
    linux 网络性能优化
    select/poll/epoll原理探究及总结
    linux socket读数据错误解释
    linux 单机跨进程通信
    map与hash_map使用与对比
    python web自动化测试框架搭建(功能&接口)——环境搭建
    Jenkins构建触发器的区别
    python改变导入模块中的变量的问题
    Jmeter断言中判断请求失败的响应代码问题
    Jmeter中动态获取jsessionid来登录
  • 原文地址:https://www.cnblogs.com/youmingkuang/p/6781392.html
Copyright © 2011-2022 走看看