|
|
获取指定IP的终端的MAC地址 |
| 作者:ItWen收集整理 来源:www.itwen.com 更新时间:2006-11-23 |
|
|
[ 收藏此页到: 天天
| 和讯
| 博采
| ViVi
| 狐摘
| 我摘
]
|
|
因为业务需要,需要给公司部分终端进行登记,以保证授权终端能够登录业务系统,最好的方法就是记录下每台终端的MAC地址来进行验证是否有授权。 下面是采用调用API的方式获取指定IP的终端的MAC地址: [DllImport("Iphlpapi.dll")] public static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length); //dest为目标机器的IP;Host为本机器的IP [DllImport("Ws2_32.dll")] public static extern Int32 inet_addr(string ip); public static string GetNetCardAddress(string strIp) { try { IPHostEntry host = Dns.GetHostByName(System.Environment.MachineName); Int32 local = inet_addr(host.AddressList[0].ToString()); Int32 remote = inet_addr(strIp); Int64 macinfo = new Int64(); Int32 length = 6; SendARP(remote, local, ref macinfo, ref length); string temp = System.Convert.ToString(macinfo, 16).PadLeft(12, '0').ToUpper(); StringBuilder strReturn = new StringBuilder(); int x = 12; for(int i=0;i<6;i++) { strReturn.Append(temp.Substring(x-2, 2)); x -= 2; } return strReturn.ToString(); } catch(Exception error) { throw new Exception(error.Message); } } 在上面的方式使用一段时间之后发现只能获取到同一网段或没有经过任何路由的终端的MAC地址,而对那些不同网段或经过了路由的终端的MAC地址则无法正常获取到MAC地址。下面的操作系统命令方式可以解决此问题: public static string GetNetCardAddress2(string strIp) { string mac = ""; System.Diagnostics.Process process = new System.Diagnostics.Process(); process.StartInfo.FileName = "nbtstat"; process.StartInfo.Arguments = "-a "+strIp; process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; process.StartInfo.RedirectStandardOutput = true; process.Start(); string output = process.StandardOutput.ReadToEnd(); int length = output.IndexOf("MAC Address = "); if(length>0) { mac = output.Substring(length+14, 17); } process.WaitForExit(); return mac.Replace("-", "").Trim(); }(完)计算机基础教程网
|
引用提示:
内容页面:获取指定IP的终端的MAC地址 --- C#语言
作者:ItWen收集整理
来源:www.ITWEN.com 计算机基础教程网
|
版权申明:
本网站所有内容,未经注明的,版权一律属于计算机基础教程网(ITWEN.com)制作署所有。转载引用本网站的原创文章,请务必注明信息来源,标明“计算机基础教程网(ITWEN.com)”字样。
计算机基础教程网(ITWEN.com)依法保护知识产权,如果我们的文章有涉及或侵犯您的有关权益,请即时与我们联系, 注明网址及文章,我们会即时处理或删除, 感谢您的合作!
|
【大 中 小】
【返回站点首页】【打印本页】【关闭本页】
|
|
|
|
|
资料搜索 |
|
|
|
热门文章 |
|
|
|
前面文章 |
|
|
|
|