使用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();
}
分享到:
相关推荐
该方法通过获取本机IP和子网掩码,计算出整个网段的IP范围,然后利用ARP包获取每个IP对应的MAC地址,并使用多线程技术和委托技术来提高程序的运行速度和稳定性。 知识点: 1. ARP协议:ARP(Address Resolution ...
本程序解决了arp广播只局限于同一网段内获取计算机的ipmac地址
C#通过API的方式获取指定网口的ARP表项。通常获取ARP表的时候返回的是电脑的所有的ARP表项,有时候需要获取指定网口的ARP表项,但是ARP表项里面只有网口索引,并没有网口的名称,因此必须找到网口名称和网口索引之间...
C#调用API接口 本文将详细介绍如何在C#中调用API函数获取系统信息。API函数是构筑Windows应用程序的基石,是Windows编程的必备利器。每一种Windows应用程序开发工具都提供了间接或直接调用了Windows API函数的方法...
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Web应用程序时,如WebAPI。WebAPI是ASP.NET框架的一部分,用于构建RESTful服务,它允许客户端(如浏览器或移动应用)通过HTTP协议与服务器进行交互。在这个场景...
在C# WebAPI中,主要涉及以下几个关键知识点: 1. **控制器(Controllers)**:WebAPI的核心是控制器类,它们继承自`System.Web.Http.ApiController`基类。控制器负责处理客户端的HTTP请求,并返回响应。例如,一个...
C# WebApi实战项目Demo,便于快速学习WEBAPI, WebAPI: 提供给不同客户端(跨平台客户端)调用网页的应用程序编程接口。 Web API,一般指基于HTTP协议的编程接口,接口一般定义为HTTP或HTTPS:请求方法、请求路径、...
C#调用API串口通信是指使用C#语言通过API函数调用串口设备,实现串口通信的功能。串口通信是一种常用的通信方式,广泛应用于工业控制、机器人控制、数据采集等领域。C#语言作为一种现代化的编程语言,提供了丰富的...
C# API大全pdf,内容涉及使用C#调用windows API 入门: 一:入门,直接从C# 调用DLL 导出 二.背后的原理―― 知其所以然,相关的知识 从.NET 平台调用Win32 API的一些基础知识以及编程实例,windows ...
ARP部分涉及到对底层网络协议的操作,C#的System.Net和System.Net.NetworkInformation命名空间提供了相应的API支持。 【文件结构】 1. LICENSE:通常包含项目的授权许可信息,例如MIT、Apache等,定义了他人使用、...
在实现这个功能时,开发者可能使用Python、Java、C#等编程语言,利用这些语言提供的网络库,如Python的socket库,或者.NET框架中的System.Net命名空间。 总的来说,“跨网段搜计算机IP”是一项涉及网络通信协议、IP...
在C#编程中,当你需要主动扫描和连接到周边的WiFi网络时,通常会依赖操作系统提供的API接口。在这个场景下,`wlanapi.dll`(Windows无线局域网API库)是一个关键的角色。这个库提供了丰富的功能,允许开发者直接与...
2. **解析ARP数据包**:使用如libpcap或WinPcap这样的库,解析捕获到的数据包,提取出ARP请求和响应中的IP和MAC地址信息。 3. **构造伪造响应**:一旦检测到目标主机发出的ARP请求,攻击者可以构造一个伪造的ARP...
在本文中,我们将深入探讨如何使用C#编程语言结合Windows API来实现进程间通信(IPC),特别是通过发送和接收消息的方式。"C#利用API发送和接收消息Demo"项目展示了如何利用API函数实现在不同应用程序之间的消息传递...
本文将深入探讨如何使用C#调用API来修改系统时间,这对于理解和掌握系统级编程概念至关重要。 首先,我们需要理解API(Application Programming Interface)的概念。API是一组预定义的函数、类、对象和接口,它们...
**C# Web API详解** C# Web API是微软.NET Framework的一部分,主要用于构建RESTful服务,它使得开发基于HTTP的应用程序变得更加简单。REST(Representational State Transfer)是一种软件架构风格,用于设计网络...
本篇将深入探讨C# API的使用,包括其基本概念、主要类别、使用方法以及如何通过API来增强C#应用的功能。 首先,让我们理解什么是C# API。C# API是由.NET框架提供的,包含了各种类、接口、枚举和委托,这些构成了C#...
本实例探讨的是如何利用API(Application Programming Interface)在C#程序中更改计算机名称,这对于系统管理或者自动化任务来说非常实用。API是操作系统提供给开发者的一种接口,通过它,程序员可以访问和控制系统...
本文将深入探讨如何使用C#直接调用Windows API,尤其是从DLL导出的函数。 调用非托管代码,如Windows API,通常是必要的,因为这些API提供了操作系统级别的功能,而.NET Framework可能没有直接对应的封装。这里有两...
利用 Windows API 32 中打印函数,对打印机进行发送打印任务、暂停、取消、获取打印任务、获取打印机列表、状态、纸张等信息。压缩包中包含4个平时收集的打印类,测试均可用。附含Windows API 函数 for Visual Basic...