asp获取客户端的MAC地址近日在做一个投票系统中有这样一个需求:为了防止恶意拉票或刷票,需要通过远程客户端的IP地址来获取客户端网卡的MAC地址。晚上了很多资料,终于有点收获。如何取得网卡mac地址,就不得不讲到dos命令:NBTSTAT,下面简单介绍下:1. 具体功能该命令用于显示本地计算机和远程计算机的基于TCP/IPNetBT 协议的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 中指定的秒数。按CtrlC 停止重新显示统计信息。如果省略该参数,NBTSTAT 将只显示一次当前的配置信息。我们试下它的功
aspnet和net的区别能:在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中我们也是根据这个原理,先取得指定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_Loadobject sender EventArgs e //此处输入Ip地址,你可以做成接受文本框的值进行查询Response.WriteGetCustomerMac192.168.168.242 //这里是关键函数了public string GetCustomerMacstring 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.Startpsi dirResults proc.StandardOutput.ReadToEnd proc.WaitForExit //匹配mac地址Match
m Regex.MatchdirResults w-w-w-w-w-ww //若匹配成功则返回mac,否则返回不到主机信息if m.ToString return m.ToString else return
不到主机信息
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论