`
net_liu
  • 浏览: 231398 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

获取本机和目标机的MAC地址

阅读更多

获取本机和目标机的MAC地址:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
using System.Runtime.InteropServices;
using System.Net;

namespace GetMac
{
    class Program
    {
        [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();
        }

        static void Main(string[] args)
        {
            Program gi = new Program();
            Console.WriteLine("本地网卡信息:");
            Console.WriteLine(gi.getLocalIP() + " - " + gi.getLocalMac());
            Console.ReadKey();

            Console.WriteLine("\n\r远程网卡信息:");
            string[] temp = gi.getRemoteIP("WKS049");//目标机名
            for (int i = 0; i < temp.Length; i++)
            {
                Console.WriteLine(temp[i]);
            }

            string remote = gi.getRemoteMac("13.0.0.26", "13.0.0.103");//本机IP和目标机IP
            StringBuilder b = new StringBuilder();
            for (int i = remote.Length - 2; i >= 0; i = i - 2)
            {
                b.Append(remote.Substring(i, 2));
                b.Append(":");
            }
            if (b.Length > 1)
            {
                b.Remove(b.Length - 1, 1);
            }
            Console.Write(b);
            Console.ReadKey();
        }

    }
}

 

分享到:
评论

相关推荐

    pb中获得本机IP地址\MAC地址信息纯代码方式

    这个主题聚焦在如何在PowerBuilder(PB9)中通过纯代码的方式获取本机的IP地址和MAC地址。IP地址是网络上设备的唯一标识,而MAC地址是物理网络接口控制器的唯一硬件地址。下面我们将深入探讨如何实现这一功能。 ...

    python获取本机mac地址和ip地址的方法

    在当今的网络编程和系统管理中,获取本机的MAC地址和IP地址是基础且常见的需求。在Python这种编程语言中,它提供了丰富的方法来实现这一目标。接下来,我将结合文档中提供的代码和描述,详细介绍如何在Python中获取...

    一件获取本机IP、主机名、和Mac地址小工具

    “获取本机信息.exe”这个小工具,正如其名,提供了简单快捷的方式来查看电脑的IP、主机名和MAC地址。在日常维护或问题排查中,这样的工具非常实用。只需运行这个程序,用户就可以直观地看到本机的网络配置信息,...

    arp协议获得局域网内主机的IP和MAC地址

    在获取本机IP和MAC地址模块中,我们使用函数unsigned char *GetSelfMac()来获取本机的MAC地址,该函数负责发送ARP请求数据帧,并解析本机的ARP应答数据帧。 在封装并发送ARP请求帧模块中,我们将ARP请求帧以本地...

    获取电脑mac地址

    本工具专注于在Windows操作系统中获取电脑的MAC地址,提供了一种便捷的方法来查看这一关键信息。 获取电脑MAC地址的方法有很多种,但使用专门的工具如"MAC.exe"可以使这个过程更简单,避免了通过命令行或网络配置...

    最好的获取MAC地址的方法

    总之,获取MAC地址在PHP中是一个相对复杂的过程,需要根据具体的应用场景和目标系统选择合适的方法。通过理解网络基础和PHP的系统交互,我们可以有效地实现这一功能。在开发过程中,测试不同环境的兼容性和优化性能...

    查询本机IP、MAC地址信息

    在IT领域,了解和获取本机的IP和MAC地址信息是常见的需求,这对于网络诊断、配置和安全检查都至关重要。本文将深入解析标题和描述中提及的知识点,并提供相关的信息。 首先,我们要知道什么是IP地址和MAC地址。IP...

    pb获取ip地址/mac地址

    在PowerBuilder中,可以使用Winsock控件或者.NET Framework的System.Net.NetworkInformation命名空间来获取本机IP地址。Winsock控件提供了低级别的网络通信功能,可以通过执行适当的Socket命令来获取网络接口的IP...

    跨网段获取远程主机MAC地址的方法与java实现

    然而,传统的获取远程主机MAC地址的方法,如通过IP Helper API的SendARP函数,存在明显的局限性——仅能有效在本地网段内工作,对于跨网段的主机,此方法往往只能获取到网关的MAC地址,而非目标主机的真实MAC地址。...

    C代码获取本机的Mac地址

    根据提供的文件信息,本文将详细解析如何通过C语言获取本机的MAC地址,同时也会探讨另一种更为通用的方法——使用NetBIOS API。 ### C代码获取本机MAC地址 #### 编程思路概述 作者提到的方法是在Visual Studio ...

    获取IP地址与MAC地址对应关系实验报告1

    通过分析捕获到的 ARP 报文,可以找出本机 IP 地址与 MAC 地址的对应关系。 4 . 3 设置 ARP 请求按钮响应函数当用户触发 ARP 请求时,程序发送一个包含目标 IP 地址的 ARP 请求报文,然后等待并接收 ARP 响应报文。...

    安卓手机mac物理地址修改工具

    本篇文章将详细介绍一款名为“安卓手机MAC物理地址修改工具”的实用软件及其使用方法。 一、MAC地址的概念与作用 MAC地址,又称为硬件地址,是由网络设备制造商烧录在网卡(NIC)上的物理地址。它在网络层中起到...

    手机MAC地址修改

    本指南将详细介绍如何在安卓手机上修改MAC地址,并提供相关工具和教程。 首先,了解为何需要修改MAC地址。网络管理员可能会使用MAC地址过滤来限制设备接入网络,防止未经授权的设备访问。此外,有些应用或服务可能...

    C#获取本地主机IPmac地址

    根据给定文件的信息,我们可以总结出以下详细的C#知识点及相关代码示例,这些知识点主要涉及如何在C#中获取本地主机以及远程主机的IP地址和MAC地址。 ### 一、获取本地主机IP地址 #### 1. 使用 `Dns.GetHostName()...

    通过IP地址获取对方MAC地址

    4. 调用SendArp()函数,传入目标IP地址、本机接口的IP地址、MAC地址数组以及物理地址长度参数。 5. 检查SendArp()函数的返回值,如果成功则解析MAC地址数组,否则处理错误信息。 6. 最后,将MAC地址以人类可读的格式...

    arping获得目的主机的mac地址

    "arping"工具就是这样一个实用程序,它允许用户通过发送ARP请求来获取目标主机的MAC地址。 在C++编程中实现"arping"功能,需要深入理解以下知识点: 1. **ARP协议原理**:ARP协议是基于局域网的协议,当发送方需要...

    如何使用Java代码获取Android移动终端Mac地址.zip

    由于隐私和安全原因,从Android 6.0(API级别23)开始,系统对此进行了限制,不再允许应用直接获取Mac地址。不过,仍有一些方法可以尝试获取Mac地址,尤其是在系统层面或具有特定权限的应用中。以下将详细介绍如何...

    ARP协议获取局域网内活动主机mac地址

    在局域网环境中,当一个设备想要与另一个设备通信时,如果只知道对方的IP地址,就需要通过ARP协议来获取对应的MAC地址,因为MAC地址才是数据帧在物理网络上直接传输的目标。 标题"ARP协议获取局域网内活动主机mac...

    ARP协议获得局域网内活动主机物理地址程序

    1. **ARP广播请求**: 实现发送ARP请求的功能,构造合适的ARP请求报文,包含源IP和MAC地址,以及目标IP地址(通常设置为广播地址255.255.255.255)。 2. **ARP应答接收**: 监听网络接口,捕获到的ARP应答包会被解析...

Global site tag (gtag.js) - Google Analytics