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"));
        }
    }
  • 相关阅读:
    bzoj 1927: [Sdoi2010]星际竞速
    bzoj 1926: [Sdoi2010]粟粟的书架
    bzoj 1923: [Sdoi2010]外星千足虫
    bzoj 1922: [Sdoi2010]大陆争霸
    bzoj 1911: [Apio2010]特别行动队
    bzoj 1878: [SDOI2009]HH的项链
    bzoj 1877: [SDOI2009]晨跑
    bzoj 1856: [Scoi2010]字符串
    bzoj 1854: [Scoi2010]游戏
    python小练习,打出1-100之间的所有偶数,设计一个函数,在桌面上创建10个文件,并以数字命名,复利计算函数
  • 原文地址:https://www.cnblogs.com/wolfocme110/p/4919318.html
Copyright © 2011-2022 走看看