/// <summary>
/// 调用API获取MAC地址
/// </summary>
/// <param name="p_Id">IP地址</param>
/// <returns>MAC地址</returns>
public static string GetMac(string p_Id)
{
IPAddress _Address;
if (!IPAddress.TryParse(p_Id, out _Address)) return "";
uint DestIP = System.BitConverter.ToUInt32(_Address.GetAddressBytes(), 0);
ulong pMacAddr = 0;
uint PhyAddrLen = 6;
uint error_code = SendARP(DestIP, 0, ref pMacAddr, ref PhyAddrLen);
byte[] _Bytes1 =BitConverter.GetBytes(pMacAddr);
return BitConverter.ToString(_Bytes1,0,6);
}
/// <summary>
/// 使用ARP获取MAC地址
/// </summary>
/// <param name="DestIP">目标IP</param>
/// <param name="SrcIP">0</param>
/// <param name="pMacAddr">两个uint 都是255</param>
/// <param name="PhyAddrLen">长度6</param>
/// <returns>返回错误信息</returns>
[DllImport("Iphlpapi.dll")]
public static extern uint SendARP(uint DestIP, uint SrcIP, ref ulong pMacAddr, ref uint PhyAddrLen);