获取MAC地址的烦恼
袭网络中介绍的C#实现的获取MAC地址的代码,得到的结果却与想象中不同
[DllImport("Iphlpapi.dll")]
private static 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);
private void test__Click(object sender, System.EventArgs e)
{
Int32 ldest= inet_addr("192.168.10.42");//目的地的ip
Int32 lhost= inet_addr("192.168.10.42");//本地的ip
try
{
Byte[] macinfo=new Byte[6];
Int32 length=48;
IntPtr mac=new IntPtr(macinfo[0]);
IntPtr len=new IntPtr(6);
int ii=SendARP(ldest,lhost, ref mac, ref len);
Response.Write(mac.ToString());
}
catch(Exception err)
{
Response.Write(err.Message);
}
}
获取的网卡地址数字是1078779904
然而真实MAC地址是00E04C4031C0
通过十进制与十六进制数的转换无法匹配
对IntPtr类型的不理解更加困恼
不知道能不能获得高手指点