zoukankan      html  css  js  c++  java
  • C#获取IP及MAC地址 方法

    C#获取IP及MAC地址 方法,比较齐全

    using System.Net;
    using System;
    using System.Management;
    using System.Runtime.InteropServices;
    
    public class getIP
    {
        [DllImport("Iphlpapi.dll")]
        private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length);
        [DllImport("Ws2_32.dll")]
        private static extern Int32 inet_addr(string ip);
    
        //获取本机的IP
    
        public string getLocalIP()
        {
            string strHostName = Dns.GetHostName(); //得到本机的主机名
    
            IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本机IP
    
            string strAddr = ipEntry.AddressList[0].ToString();
            return (strAddr);
        }
        //获取本机的MAC
    
        public string getLocalMac()
        {
            string mac = null;
            ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection queryCollection = query.Get();
            foreach (ManagementObject mo in queryCollection)
            {
                if (mo["IPEnabled"].ToString() == "True")
                    mac = mo["MacAddress"].ToString();
            }
            return (mac);
        }
    
        //获取远程主机IP
    
        public string[] getRemoteIP(string RemoteHostName)
        {
            IPHostEntry ipEntry = Dns.GetHostByName(RemoteHostName);
            IPAddress[] IpAddr = ipEntry.AddressList;
            string[] strAddr = new string[IpAddr.Length];
            for (int i = 0; i < IPADDR.LENGTH; I++)
            {
                strAddr[i] = IpAddr[i].ToString();
            }
            return (strAddr);
        }
        //获取远程主机MAC
    
        public string getRemoteMac(string localIP, string remoteIP)
        {
            Int32 ldest = inet_addr(remoteIP); //目的ip 
    
            Int32 lhost = inet_addr(localIP); //本地ip
    
    
            try
            {
                Int64 macinfo = new Int64();
                Int32 len = 6;
                int res = SendARP(ldest, 0, ref macinfo, ref len);
                return Convert.ToString(macinfo, 16);
            }
            catch (Exception err)
            {
                Console.WriteLine("Error:{0}", err.Message);
            }
            return 0.ToString();
        }
    
    
        public static void Main(string[] args)
        {
            getIP gi = new getIP();
            Console.WriteLine("本地网卡信息:");
            Console.WriteLine(gi.getLocalIP() + " - " + gi.getLocalMac());
    
            Console.WriteLine("
    
    远程网卡信息:");
            string[] temp = gi.getRemoteIP("scmobile-tj2");
            for (int i = 0; i < TEMP.LENGTH; I++)
            {
                Console.WriteLine(temp[i]);
            }
            Console.WriteLine(gi.getRemoteMac("192.168.0.3", "192.168.0.1"));
        }
    }
  • 相关阅读:
    病毒分裂(分治)
    【CQYZ-vijos】P1333 舞伴的搭配(贪心算法)
    算法系列之图--拓扑排序
    算法系列之图--DFS
    算法系列之图--BFS
    python读取txt里的json文件,存到excel,例子2
    python读取txt里的json文件,存到excel,例子1
    python读取excel数据做分类统计
    python datetime中timedelta的用法
    bootstrap用法小计
  • 原文地址:https://www.cnblogs.com/wolfocme110/p/4919318.html
Copyright © 2011-2022 走看看