[DllImport("Iphlpapi.dll")]
private static unsafe extern int SendARP(Int32 dest,Int32 host,ref IntPtr mac,ref IntPtr length);
[DllImport("Ws2_32.dll")]
private static extern Int32 inet_addr(string ip);Int32 ldest= inet_addr("157.60.68.163");//目的地的ip
Int32 lhost= inet_addr("157.60.68.33");//本地的iptry
{
Byte[] macinfo=new Byte[6];
Int32 length=6;IntPtr mac=new IntPtr(macinfo[0]);
IntPtr len=new IntPtr(6);
int ii=SendARP(ldest,lhost, ref mac, ref len);Console.WriteLine("Mac Add:"+mac);
Console.WriteLine("length:"+len);
}
catch(Exception err)
{
Console.WriteLine(err);
}
private static unsafe extern int SendARP(Int32 dest,Int32 host,ref IntPtr mac,ref IntPtr length);
[DllImport("Ws2_32.dll")]
private static extern Int32 inet_addr(string ip);Int32 ldest= inet_addr("157.60.68.163");//目的地的ip
Int32 lhost= inet_addr("157.60.68.33");//本地的iptry
{
Byte[] macinfo=new Byte[6];
Int32 length=6;IntPtr mac=new IntPtr(macinfo[0]);
IntPtr len=new IntPtr(6);
int ii=SendARP(ldest,lhost, ref mac, ref len);Console.WriteLine("Mac Add:"+mac);
Console.WriteLine("length:"+len);
}
catch(Exception err)
{
Console.WriteLine(err);
}
/// 得到网卡物理地址
/// </summary>
/// <returns>网卡物理地址列表</returns>
public string[] GetMacAddress()
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
//****先得到网卡数目
int i = 0;
foreach(ManagementObject mo in moc)
{
if((bool)mo["IPEnabled"] == true)
{
i++;
}
mo.Dispose();
}
//***赋值给数组
ManagementClass mc_2 = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc_2 = mc_2.GetInstances();
string []array = new string[i];
int j = 0;
foreach(ManagementObject mo in moc_2)
{
if((bool)mo["IPEnabled"] == true)
{
string delcolon = mo["MacAddress"].ToString();
delcolon = delcolon.Replace(":","");
array[j] = delcolon;
j++;
}
mo.Dispose();
}
return array;
}
1) Retrieve the MAC address:
ManagementClass mc = new ManagementClass
("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach(ManagementObject mo in moc)
{
if((bool)mo["IPEnabled"] == true)
Console.WriteLine("MAC address\t{0}", mo
["MacAddress"].ToString());
mo.Dispose();
}