用C#编写获取远程IP,MAC的方法

微软 aspxcn.com 2002-09-30

如果要想获得远程的地址,需要用sendarp这个函数来实现。具体的代码如下:

[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");//本地的ip

try
{
    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);  // mac.ToString("x6") 十进制转16进制
    Console.WriteLine("length:" + len);
}
catch (Exception err)
{
    Console.WriteLine(err);
}
Contributors: FHL