当前位置:编程学习 > asp >>

根据计算机MAC地址限定每台机子只能领取一次账号

这里只做简单演示过程,请根据您的实际情况作适当修改!
另外我的博客只做自己参考查询方便用,请各位大神不要没事喷我,知道您的技术高,我是新手正在努力学习当中,谢谢!!!!
下面开始吧:
首先写一个简单的前台代码:
 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div style="text-align: left">
        <strong><span style="font-size: 14pt">欢迎光临爱智旮旯的博客!</span><br />
        </strong><span style="font-size: 10pt; color: #ff0000">注:每台计算机只可以领取一个帐号<br />
        </span>
        <asp:Button ID="getNamePass" runat="server" OnClick="getNamePass_Click" Text="领取帐号密码" /> <br />
        <asp:Label ID="labName" runat="server"></asp:Label><br />
        <asp:Label ID="labPass" runat="server"></asp:Label><br />
    </div>
    </form>
</body>
</html>
 
再来写一个后台代码,备注已经说的比较清楚,这里不多说了!
 
using System;
using System.Data;
using System.Configuration;
using System.Collections;
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)
    {
       
            labName.Text = labPass.Text = "";
     
    }

    protected void getNamePass_Click(object sender, EventArgs e)
    {
            //获取客户端的IP地址
             string IP = Request.UserHostAddress;
            //创建字符串变量
            string dirResults = "";
            //创建ProcessStartInfo对象表示启动进程时使用的一组值
            ProcessStartInfo psi = new ProcessStartInfo();
            //创建Process对象使您能够启动和停止本地系统进程
            Process proc = new Process();
            //设置要启动的应用程序或文档
            psi.FileName = "nbtstat";
            //设置不从Process.StandardInput流中读取输入
            psi.RedirectStandardInput = false;
            //设置要输出写入 Process.StandardOutput流
            psi.RedirectStandardOutput = true;
            //设置启动的应用程序中的一组命令参数
            psi.Arguments = "-A " + IP;
            //设置从可执行文件创建进程
            psi.UseShellExecute = false;
            //设置启动进程 www.zzzyk.com
            proc = Process.Start(psi);
            //获取StandardOutput输出流
            dirResults = proc.StandardOutput.ReadToEnd();
            //设置Process 组件无限期地等待关联进程退出
            proc.WaitForExit();
            //替换掉StandardOutput输出流中的"/r,/n,/t"
            dirResults = dirResults.Replace("\r", "").Replace("\n", "").Replace("\t", "");
            //设置正则表达式
            Regex reg = new Regex("MAC[ ]{0,}Address[ ]{0,}=[ ]{0,}(?<key>((.)*?))MAC", RegexOptions.IgnoreCase | RegexOptions.Compiled);
            //向获取的StandardOutput输出流添加"MAC"字符串
            dirResults = dirResults + "MAC";
            //获取Cookie
            HttpCookie oldCookie = Request.Cookies["netCard"];
            //获取正则表达式中的匹配项
            Match mc = reg.Match(dirResults);
            //获取网卡号去除掉“-”符合
            string networkCard = mc.Groups["key"].Value.Replace("-", "");
            //判断Cookie是否为空
            if (oldCookie == null)
            {             
                //判断是否符合正则表达式的要求
                if (mc.Success)
                {
                  
              &n

补充:Web开发 , ASP.Net ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,