获取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类型的不理解更加困恼
不知道能不能获得高手指点

posted on 2004-08-24 11:59  黄玮璘  阅读(576)  评论(0编辑  收藏  举报

导航