zoukankan      html  css  js  c++  java
  • C# 获取客户端电脑MAC 地址

    前台代码

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %>

    <!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;

    namespace WebApplication2

    {    

    public partial class WebForm1 : 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>");               

      }               

      }       

          }

            }

        } }

  • 相关阅读:
    Hadoop- Cluster Setup
    Hadoop- Cluster Setup
    【网络协议】动态主机配置协议DHCP
    【网络协议】动态主机配置协议DHCP
    数据流(任务并行库 TPL)
    数据流(任务并行库 TPL)
    js数据存储.html
    对象操作(2).html
    对象操作(1).html
    对象forin循环.html
  • 原文地址:https://www.cnblogs.com/EDSON/p/2949368.html
Copyright © 2011-2022 走看看