`
star65225692
  • 浏览: 273397 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类

C#使用API利用ARP协议获得同网段计算机的MAC

阅读更多

使用API,利用ARP协议,只能获得同网段计算机的MAC

        [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);

        public static string GetRemoteMac(string clientIP)

        {

            string ip = clientIP;

            if ( ip == "127.0.0.1")

                ip = GetLocalIP()[0];

            Int32 ldest=inet_addr(ip);

            Int64 macinfo=new Int64();

            Int32 len=6;

            try

            {

                SendARP(ldest,0,ref macinfo,ref len);

            }

            catch

            {

                return "";

            }

            string originalMACAddress = Convert.ToString(macinfo,16);

            if (originalMACAddress.Length<12)

            {

                originalMACAddress = originalMACAddress.PadLeft(12,'0');

            }

            string macAddress;

            if(originalMACAddress!="0000" && originalMACAddress.Length==12)

            {

                string mac1,mac2,mac3,mac4,mac5,mac6;

                mac1=originalMACAddress.Substring(10,2);

                mac2=originalMACAddress.Substring(8,2);

                mac3=originalMACAddress.Substring(6,2);

                mac4=originalMACAddress.Substring(4,2);

                mac5=originalMACAddress.Substring(2,2);

                mac6=originalMACAddress.Substring(0,2);

                macAddress=mac1+"-"+mac2+"-"+mac3+"-"+mac4+"-"+mac5+"-"+mac6;

            }

            else

            {

                macAddress="";

            }

            return macAddress.ToUpper();

        }

分享到:
评论

相关推荐

    ARP扫描局域网主机ip和MAC(c#)归类.pdf

    该方法通过获取本机IP和子网掩码,计算出整个网段的IP范围,然后利用ARP包获取每个IP对应的MAC地址,并使用多线程技术和委托技术来提高程序的运行速度和稳定性。 知识点: 1. ARP协议:ARP(Address Resolution ...

    跨网段获取计算机的ip和mac

    本程序解决了arp广播只局限于同一网段内获取计算机的ipmac地址

    C#通过API的方式获取指定网口的ARP表项

    C#通过API的方式获取指定网口的ARP表项。通常获取ARP表的时候返回的是电脑的所有的ARP表项,有时候需要获取指定网口的ARP表项,但是ARP表项里面只有网口索引,并没有网口的名称,因此必须找到网口名称和网口索引之间...

    C#调用api接口

    C#调用API接口 本文将详细介绍如何在C#中调用API函数获取系统信息。API函数是构筑Windows应用程序的基石,是Windows编程的必备利器。每一种Windows应用程序开发工具都提供了间接或直接调用了Windows API函数的方法...

    C#webapi文件上传下载源码

    在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Web应用程序时,如WebAPI。WebAPI是ASP.NET框架的一部分,用于构建RESTful服务,它允许客户端(如浏览器或移动应用)通过HTTP协议与服务器进行交互。在这个场景...

    C# WebAPI示例

    在C# WebAPI中,主要涉及以下几个关键知识点: 1. **控制器(Controllers)**:WebAPI的核心是控制器类,它们继承自`System.Web.Http.ApiController`基类。控制器负责处理客户端的HTTP请求,并返回响应。例如,一个...

    C# WebApi实战项目Demo,便于快速学习WEBAPI

    C# WebApi实战项目Demo,便于快速学习WEBAPI, WebAPI: 提供给不同客户端(跨平台客户端)调用网页的应用程序编程接口。 Web API,一般指基于HTTP协议的编程接口,接口一般定义为HTTP或HTTPS:请求方法、请求路径、...

    C#调用API串口通信

    C#调用API串口通信是指使用C#语言通过API函数调用串口设备,实现串口通信的功能。串口通信是一种常用的通信方式,广泛应用于工业控制、机器人控制、数据采集等领域。C#语言作为一种现代化的编程语言,提供了丰富的...

    C#调用API教程

     C# API大全pdf,内容涉及使用C#调用windows API 入门:  一:入门,直接从C# 调用DLL 导出  二.背后的原理―― 知其所以然,相关的知识  从.NET 平台调用Win32 API的一些基础知识以及编程实例,windows ...

    基于C#开发的局域网下的ARP工具源码

    ARP部分涉及到对底层网络协议的操作,C#的System.Net和System.Net.NetworkInformation命名空间提供了相应的API支持。 【文件结构】 1. LICENSE:通常包含项目的授权许可信息,例如MIT、Apache等,定义了他人使用、...

    跨网段搜计算机ip

    在实现这个功能时,开发者可能使用Python、Java、C#等编程语言,利用这些语言提供的网络库,如Python的socket库,或者.NET框架中的System.Net命名空间。 总的来说,“跨网段搜计算机IP”是一项涉及网络通信协议、IP...

    C#使用wlanapi.dll主动扫描周边wifi并连接。

    在C#编程中,当你需要主动扫描和连接到周边的WiFi网络时,通常会依赖操作系统提供的API接口。在这个场景下,`wlanapi.dll`(Windows无线局域网API库)是一个关键的角色。这个库提供了丰富的功能,允许开发者直接与...

    arp欺骗 C#实现arp欺骗

    2. **解析ARP数据包**:使用如libpcap或WinPcap这样的库,解析捕获到的数据包,提取出ARP请求和响应中的IP和MAC地址信息。 3. **构造伪造响应**:一旦检测到目标主机发出的ARP请求,攻击者可以构造一个伪造的ARP...

    C#利用API发送和接收消息Demo

    在本文中,我们将深入探讨如何使用C#编程语言结合Windows API来实现进程间通信(IPC),特别是通过发送和接收消息的方式。"C#利用API发送和接收消息Demo"项目展示了如何利用API函数实现在不同应用程序之间的消息传递...

    C#调用API修改系统时间

    本文将深入探讨如何使用C#调用API来修改系统时间,这对于理解和掌握系统级编程概念至关重要。 首先,我们需要理解API(Application Programming Interface)的概念。API是一组预定义的函数、类、对象和接口,它们...

    C# WEB API

    **C# Web API详解** C# Web API是微软.NET Framework的一部分,主要用于构建RESTful服务,它使得开发基于HTTP的应用程序变得更加简单。REST(Representational State Transfer)是一种软件架构风格,用于设计网络...

    C# API的使用

    本篇将深入探讨C# API的使用,包括其基本概念、主要类别、使用方法以及如何通过API来增强C#应用的功能。 首先,让我们理解什么是C# API。C# API是由.NET框架提供的,包含了各种类、接口、枚举和委托,这些构成了C#...

    C#实例利用API更改计算机名

    本实例探讨的是如何利用API(Application Programming Interface)在C#程序中更改计算机名称,这对于系统管理或者自动化任务来说非常实用。API是操作系统提供给开发者的一种接口,通过它,程序员可以访问和控制系统...

    C#API大全(doc)

    本文将深入探讨如何使用C#直接调用Windows API,尤其是从DLL导出的函数。 调用非托管代码,如Windows API,通常是必要的,因为这些API提供了操作系统级别的功能,而.NET Framework可能没有直接对应的封装。这里有两...

    c# 利用Windows API 操作打印机

    利用 Windows API 32 中打印函数,对打印机进行发送打印任务、暂停、取消、获取打印任务、获取打印机列表、状态、纸张等信息。压缩包中包含4个平时收集的打印类,测试均可用。附含Windows API 函数 for Visual Basic...

Global site tag (gtag.js) - Google Analytics