本文使用二种方式来获取macaddress.
1.
只能获取本机的.
using System.Management;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc2 = mc.GetInstances();
foreach (ManagementObject mo in moc2)
{
if ((bool)mo["IPEnabled"] == true)
this.textBox1.Text = mo["MacAddress"].ToString();
mo.Dispose();
}
2. 此种方法可以获取远程MAC地址
using System.Runtime.InteropServices;
[DllImport("Iphlpapi.dll")]
static extern int SendARP(Int32 DestIP, Int32 SrcIP, ref Int64 MacAddr, ref Int32 PhyAddrLen);
[DllImport("Ws2_32.dll")]
static extern Int32 inet_addr(string ipaddr);
///<summary>
/// SendArp获取MAC地址
///</summary>
///<param name="RemoteIP">目标机器的IP地址如(192.168.1.1)</param>
///<returns>目标机器的mac 地址</returns>
public static string GetMacAddress(string RemoteIP)
{
StringBuilder macAddress = new StringBuilder();
try
{
Int32 remote = inet_addr(RemoteIP);
Int64 macInfo = new Int64();
Int32 length = 6;
SendARP(remote, 0, ref macInfo, ref length);
string temp = Convert.ToString(macInfo, 16).PadLeft(12, '0').ToUpper();
int x = 12;
for (int i = 0; i < 6; i++)
{
if (i == 5)
{
macAddress.Append(temp.Substring(x - 2, 2));
}
else
{
macAddress.Append(temp.Substring(x - 2, 2) + "-");
}
x -= 2;
}
return macAddress.ToString();
}
catch
{
return macAddress.ToString();
}
}
分享到:
相关推荐
用函数SendARP获取局域网计算机的MAC地址 用函数SendARP获取局域网计算机的MAC地址 用函数SendARP获取局域网计算机的MAC地址
该函数的参数ipaddr是要获取MAC地址的IP地址,temp是一个临时变量,ulmacaddr是MAC地址的指针,ulmacaddrleng是MAC地址的长度。 使用SendARP函数可以获取网卡的MAC地址,下面是一个示例代码: ```delphi procedure ...
总的来说,通过IP地址获取MAC地址的过程是网络编程中的一个重要环节,它涉及到了网络层次模型的理解、动态链接库的使用以及底层网络协议的交互。对于系统管理员和网络开发人员来说,掌握这一技能对于网络诊断和故障...
以下是一个简单的易语言示例代码片段,展示如何使用SendARP获取MAC地址: ```易语言 .整数变量 错误代码 .数组变量 MAC地址, 6 // MAC地址为6个字节 .字符串变量 目标IP = "192.168.1.1" .整数 取指定MAC地址 结果...
获取MAC地址通常需要使用更低级别的系统调用,比如在Windows上使用`SendARP()`函数。这个过程更复杂,因为MAC地址与网络接口卡(NIC)关联,而IP地址可以由多个接口拥有。因此,获取MAC地址可能需要遍历所有网络接口...
在Windows操作系统中,可以使用命令行工具如`ipconfig`获取IP地址,`getmac`获取MAC地址。 在PowerBuilder 9.0中,我们可以创建一个应用程序来动态获取这些信息。这通常涉及到编程语言如PBL(PowerBuilder Language...
这个命令会尝试获取IP地址为192.168.1.1的设备的MAC地址。`-a`选项表示显示详细的ARP缓存信息。 **包测试与网络诊断** `sendARP`在网络诊断中非常有用,可以检查网络连接、验证路由和识别网络设备。通过发送ARP...
然而,传统的获取远程主机MAC地址的方法,如通过IP Helper API的SendARP函数,存在明显的局限性——仅能有效在本地网段内工作,对于跨网段的主机,此方法往往只能获取到网关的MAC地址,而非目标主机的真实MAC地址。...
在VB中,获取MAC地址通常会使用Win32 API函数,如`SendARP`或`GetAdaptersInfo`,这些函数可以从Windows操作系统中提取网络接口的详细信息。 在压缩包内的文件"vbgetmac"可能是一个VB工程文件(.vbp),包含了整个...
- 在Windows系统中,可以通过WMI(Windows Management Instrumentation)来获取MAC地址。 2. **代码解析**: ```csharp public static string GetMACAddressString() { ManagementClass class1 = new ...
标题中的“扫描局域网主机 SendARP...总的来说,`SendARP`是一个实用的工具,用于获取特定IP的MAC地址,但在大规模局域网扫描中,其速度可能无法满足需求。使用更高效的方法和策略,可以显著提升网络扫描的速度和效率。
在Windows中,可以通过向网络适配器发送特定的IOCTL代码来获取MAC地址。例如,使用`DeviceIoControl`函数并指定适当的控制代码。 5. **UUID**(Universally Unique Identifier):虽然UUID主要用于生成全局唯一的...
请注意,这里只是一个基础示例,实际的`GetMACAddress`函数需要正确处理错误,并解析`Buffer`来获取MAC地址。 在压缩包中的`Unit1.pas`和`Unit1.dfm`文件很可能是实现这些功能的源代码和界面设计文件。`Project1....
我们需要声明这个函数并使用它来填充一个PAdapterInfo类型的结构体数组,从中获取MAC地址。 4. **声明API函数**: 在VB中,首先需要声明GetAdaptersInfo函数,例如: ```vb Private Declare Function ...
首先,文档提到第一种方法:使用.NET Framework中的ManagementClass类来获取MAC地址。但随后指出,这种方法在WinCE平台上行不通,因为WinCE没有包含System.Management命名空间,这个命名空间在其他Windows平台(如...
另一个方法是通过`SendARP`函数,它可以直接发送ARP(地址解析协议)请求来获取目标IP的MAC地址。虽然通常用于获取远程机器的MAC,但在本地机器上也可以用于获取当前活动的MAC地址。不过,这个方法可能需要更复杂的...
#### 三、使用WMI获取MAC地址 WMI是Windows Management Instrumentation的缩写,是一种内置的管理技术,用于访问系统硬件和软件的信息。在.NET Framework中,通过`System.Management`命名空间可以利用WMI来获取硬件...
通过发送ARP请求,系统能够获取到目标IP对应的物理(MAC)地址,从而实现网络通信。在这个主题中,我们将深入探讨ARP协议的工作原理、如何在Windows环境下发送ARP包以及如何利用提供的源代码实现这一功能。 ARP协议...
以下是使用SNMP4J获取MAC地址的基本步骤: 1. 导入SNMP4J库。 2. 创建一个SNMP代理的连接对象,指定IP地址和端口号。 3. 设置SNMP版本、社区字符串(相当于密码)和其他参数。 4. 使用GetRequest或GetNextRequest...