推荐有两种方法,你试试
一、用nbtstat -A ip 命令,用.net中ProcessStartInfo和Process类取得命令输出,最后一行就是mac地址 MAC Address.
二、用.net中的wmi:System.Management namespace hosted in System.Management.dll Assembly
例:
ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration");
ManagementObjectCollection list = query.Get(); foreach(ManagementObject mo in list)
{
if( mo["macaddress"]!=null)
{
Console.WriteLine("IP address: "+((string[])mo["IPAddress"])[0]);
Console.WriteLine("MAC Address: "+ mo["macaddress"].ToString());
}
}
hope it helps
一、用nbtstat -A ip 命令,用.net中ProcessStartInfo和Process类取得命令输出,最后一行就是mac地址 MAC Address.
二、用.net中的wmi:System.Management namespace hosted in System.Management.dll Assembly
例:
ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration");
ManagementObjectCollection list = query.Get(); foreach(ManagementObject mo in list)
{
if( mo["macaddress"]!=null)
{
Console.WriteLine("IP address: "+((string[])mo["IPAddress"])[0]);
Console.WriteLine("MAC Address: "+ mo["macaddress"].ToString());
}
}
hope it helps
解决方案 »
- sqlhelper 问题
- aspx页面的Page_Load不运行
- 安装VS2010后SQL的问题
- 网站问题
- C# winform Directshow抓图实现
- 如何读取硬盘上的一张图片,在图片特定区域内叠加上另外一张图片,生成一张新图片序列化为流输出?
- 请问winform 里面怎样使datagrid 显示date时, 只显示日期部分, 不显示时间部分?
- c#调用javascript问题求教,在线等
- 关于ODBC调用存储过程获取return值
- 如何使一个HyperLink成为一个普通文本
- SqlCommand如何执行多行sql脚本?
- 在线诚问:哪位大虾能提供下列环境下c#编写的查询界面源代码(例子)?
[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);
}
.....