• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    asp.net根据计算机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="领取帐号密码" />nbsp;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;
    //设置启动进程
    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)
    {
    //显示帐号
    labName.Text = "您的帐号为:" + networkCard;
    //显示密码
    labPass.Text = "您的密码为:1234";
    //创建Cookie对象
    HttpCookie newCookie = new HttpCookie("netCard");
    //设置Cookie的有效时间
    newCookie.Expires = DateTime.MaxValue;
    //添加Cookie中的值
    newCookie.Values.Add("numberCard", networkCard);
    //将Cookie添加到Cookie集合中
    Response.Cookies.Add(newCookie);
    }
    else
    {
    RegisterStartupScript("", "script>alert( '您没有联网!');/script>");
    }
    }
    else
    {
    //获取Cookie中的网卡号
    string numberCard = oldCookie.Values["numberCard"];
    //判断Cookie中的网卡号是否和获取到的网卡号一致
    if (numberCard.Trim() == networkCard.Trim())
    {
    RegisterStartupScript("", "script>alert('很抱歉!您的计算机已领取过帐号。')/script>");
    }
    else
    {
    //判断是否符合正则表达式的要求
    if (mc.Success)
    {
    //显示帐号
    labName.Text = "您的帐号为:" + networkCard;
    //显示密码
    labPass.Text = "您的密码为:1234";
    //修改Cookie中的值
    oldCookie.Values.Set("numberCard", networkCard);
    //将Cookie添加到Cookie集合中
    Response.Cookies.Add(oldCookie);
    }
    else
    {
    RegisterStartupScript("", "script>alert( '您没有联网!');/script>");
    }
    }
    }
    }
    }
    您可能感兴趣的文章:
    • ASP.NET MVC5验证系列之服务端验证
    • ASP.NET MVC+EF在服务端分页使用jqGrid以及jquery Datatables的注意事项
    • ASP.NET获取真正的客户端IP地址的6种方法
    • asp.net 从客户端中检测到有潜在危险的 Request.Form 值错误解
    • asp.net(C#)中给控件添加客户端js事件的方法
    • asp.net 客户端浏览器缓存的Http头介绍
    • 设置ASP.NET页面不被缓存(客户端/服务器端取消缓存方法)
    • ASP.net中获取客户端参数操作系统信息
    • asp.net实现获取客户端详细信息
    • ASP.NET简单获取服务端和客户端计算机名称的方法
    上一篇:Ajax+asp.net智能匹配检索(含图含完整代码)
    下一篇:asp.net 数据类型转换类代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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