【源码共享】C#+ASP.NET中在客户端取硬盘序列号和网卡MAC地址的源码

来源:互联网 发布:单片机8位是什么意思 编辑:程序博客网 时间:2024/05/20 18:45

取硬盘序列号:   

    public string GetClientVolumnSN()
    {
        try
        {
            string dirresults = "";
            ProcessStartInfo psi = new ProcessStartInfo();
            Process proc = new Process();
            psi.FileName = "fsutil";
            psi.RedirectStandardInput = false;
            psi.RedirectStandardOutput = true;
            psi.Arguments = "fsinfo volumeinfo c:";
            psi.UseShellExecute = false;
            proc = Process.Start(psi);
            dirresults = proc.StandardOutput.ReadToEnd();
            proc.WaitForExit();
            dirresults = dirresults.Replace("/r", "").Replace("/n", "").Replace("/t", "");
            Regex reg = new Regex("卷序列号[ ]{0,}:[ ]{0,}(?<key>((.)*?))__volumnsn", RegexOptions.IgnoreCase | RegexOptions.Compiled);
            Match mc = reg.Match(dirresults + "__volumnsn");
            if (mc.Success)
            {
                return mc.Groups["key"].Value.Substring(0, 10);
            }
            else
            {
                return "";
            }
        }
        catch
        {
            return "";
        }

    }

取网卡MAC地址:

 

以下的IP可由Request.UserHostAddress取得,自己可用ipconfig取得的ip先做测试。

 

    public string GetClientMAC(string IP)
    {
        try
        {
            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();
            dirresults = dirresults.Replace("/r", "").Replace("/n", "").Replace("/t", "");
            Regex reg = new Regex("mac[ ]{0,}address[ ]{0,}=[ ]{0,}(?<key>((.)*?))__mac", RegexOptions.IgnoreCase | RegexOptions.Compiled);
            Match mc = reg.Match(dirresults + "__mac");
            if (mc.Success)
            {
                return mc.Groups["key"].Value.Substring(0, 17);
            }
            else
            {
                reg = new Regex("host not found", RegexOptions.IgnoreCase | RegexOptions.Compiled);
                mc = reg.Match(dirresults);
                if (mc.Success)
                {
                    return "Host not found!";
                }
                else
                {
                    return "";
                }
            }
        }
        catch
        {
            return "";
        }

    }

原创粉丝点击