为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

asp.net获取客户端的MAC地址

2011-09-25 5页 doc 32KB 45阅读

用户头像

is_884566

暂无简介

举报
asp.net获取客户端的MAC地址asp.net获取客户端的MAC地址 近日在做一个投票系统中有这样一个需求:为了防止恶意拉票或刷票,需要通过远程客户端的IP地址 来获取客户端网卡的MAC地址。晚上找了很多资料,终于有点收获。     如何取得网卡mac地址,就不得不讲到dos命令:NBTSTAT,下面简单介绍下: 1. 具体功能   该命令用于显示本地计算机和远程计算机的基于 TCP/IP(NetBT) 协议的 NetBIOS 统计资料、 NetBIOS 名称表和 NetBIOS 名称缓存。 NBTSTAT 可以刷新 NetBIOS 名称缓存和注册的 Win...
asp.net获取客户端的MAC地址
asp.net获取客户端的MAC地址 近日在做一个投票系统中有这样一个需求:为了防止恶意拉票或刷票,需要通过远程客户端的IP地址 来获取客户端网卡的MAC地址。晚上找了很多资料,终于有点收获。     如何取得网卡mac地址,就不得不讲到dos命令:NBTSTAT,下面简单介绍下: 1. 具体功能   该命令用于显示本地计算机和远程计算机的基于 TCP/IP(NetBT) 的 NetBIOS 统计资料、 NetBIOS 名称表和 NetBIOS 名称缓存。 NBTSTAT 可以刷新 NetBIOS 名称缓存和注册的 Windows Internet 名称服务 (WINS) 名称。使用不带参数的 NBTSTAT 显示帮助。 2. 语法详解 nbtstat [-a remotename] [-A IPaddress] [-c] [-n] [-r] [-R] [-RR] [-s] [-S] [Interval] 3. 参数说明 -a remotename 显示远程计算机的 NetBIOS 名称表, 其中, remote name 是远程计算机的 NetBIOS 计算机名称。 NetBIOS 名称表是运行在该计算机上的应用程序使用的 NetBIOS 名称列表。 -A IPaddress 显示远程计算机的 NetBIOS 名称表, 其名称由远程计算机的 IP 地址指定 ( 以小数点分隔 ) 。 -c 显示 NetBIOS 名称缓存内容、 NetBIOS 名称表及其解析的各个地址。 -n 显示本地计算机的 NetBIOS 名称表。 Registered 中的状态表明该名称是通过广播或 WINS 服务器注册的。 -r 显示 NetBIOS 名称解析统计资料。 在配置为使用 WINS 的 Windows 计算机上,该参数将返回已通过广播和 WINS 解析和注册的名称号码。 -R 清除 NetBIOS 名称缓存的内容并从 Lmhosts 文件中重新加载带有 #PRE 标记的项目。 -RR 重新释放并刷新通过 WINS 注册的本地计算机的 NetBIOS 名称。 -s 显示 NetBIOS 客户和服务器会话,并试图将目标 IP 地址转化为名称。 -S 显示 NetBIOS 客户和服务器会话,只通过 IP 地址列出远程计算机。   Interval 重新显示选择的统计资料,可以中断每个显示之间的 Interval 中指定的秒数。 按Ctrl+C 停止重新显示统计信息。如果省略该参数, NBTSTAT 将只显示一次当前的配置信息。 我们试下它的功能:在DOS窗口下,输入: nbtstat -a 192.168.168.242       这里的192.168.168.242是我的本机IP,测试中发现呆会的程序并不能取得非本地的mac地址,也就是说只能取得服务器的网卡mac地址,而不能取得客户端的网卡mac地址,记得以前用一些黑客软件的时候可以办到获取对方的网卡mac地址的,有空研究下。结果如下图: 看到网卡的MAC地址了吧!也就是: MAC Address = 00-18-F3-A7-E1-56 所以在asp.net中我们也是根据这个原理,先取得指定Ip的所有信息后,再用正则取得我们要的mac地址。 详细代码请参考下面,代码多有参考网络,为我所用,非我所想。 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; //引入相应的空间信息 using System.Text.RegularExpressions; using System.Diagnostics; public partial class _Default : System.Web.UI.Page {     protected void Page_Load(object sender, EventArgs e)     {         //此处输入Ip地址,你可以做成接受文本框的值进行查询         Response.Write(GetCustomerMac("192.168.168.242"));     }     //这里是关键函数了     public string GetCustomerMac(string IP)     {       string dirResults="";       ProcessStartInfo psi = new ProcessStartInfo();       Process proc = new Process();       psi.FileName = "nbtstat";       psi.RedirectStandardInput = false;       psi.RedirectStandardOutput = true;       psi.Arguments = "-a " + IP;       psi.UseShellExecute = false;       proc = Process.Start(psi);       dirResults = proc.StandardOutput.ReadToEnd();       proc.WaitForExit();               //匹配mac地址       Match m = Regex.Match(dirResults, "\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w\\w");       //若匹配成功则返回mac,否则返回找不到主机信息       if (m.ToString() != "")       {           return m.ToString();       }       else       {           return "找不到主机信息";       }     
/
本文档为【asp.net获取客户端的MAC地址】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索