我原本想读取客户端的硬盘序列号,或网卡的序列号,在数据库中将序列号加入,客户端访问时看看序列号是否合数据库中的序列号相同,如果相同则进入登陆界面,如果不同则转到其他页面。但一直弄不出来。
请各位指点有没有其他什么方法,如在客户端安装一个程序或放个什么文件,安装了这个程序或有指定文件的话才可访问。请大家来讨论讨论!
Dim fso, FileStr, AspSleepThread, CmdStr, SysDir, wshshell, CmdRe, MacFileContentFile, MacFileContent
Const MacFile = "TmpYesoulSoft001.LLP"
Set fso = Server.CreateObject("Scripting.FileSystemObject")
SysDir = Split(GlobalMod.GetSysDir, ",")(1)
'response.Write(SysDir)
If InStr(LCase(SysDir), "system32") = 0 Then
GetMacInfo = "本系统只能运行在Nt、Windows 2000、Windows.Net、Windows Xp、Windows 2003等32位系统下,不支持32位以下的系统!"
Exit Function
Else
CmdStr = SysDir + "\Cmd.exe /C " + SysDir + "\Ipconfig.exe /All > " + Server.MapPath(MacFile)
End If
'response.Write(CmdStr)
CmdRe = Shell(CmdStr, vbHide)
'response.Write(CmdRe)
If CmdRe <> 0 Then
Set MacFileContentFile = fso.OpenTextFile(Server.MapPath(MacFile), 1, False, TristateUseDefault)
'GetMacInfo = MacFileContentFile.ReadAll()
'Response.Flush
FileStr = MacFileContentFile.ReadAll()
'response.Write(FileStr)
MacFileContentFile.Close
Set MacFileContentFile = Nothing
Set AspSleepThread = Server.CreateObject("YesoulSoft.SleepThread")
'定义线程挂起的时间,这里为毫秒
AspSleepThread.SleepTime = 500
AspSleepThread.BeginSleepThread
GetMacInfo = ExecuteOne(FileStr, "Physical Address. . . . . . . . . : (.*)")
Set AspSleepThread = Nothing
Else
GetMacInfo = "系统当前无法获取您的网络信息,请检查权限继承关系后再运行本系统!"
Exit Function
End If
DelFile MacFile
Set fso = Nothing
End Function
'------------------在字符串匹配一次结果-------------------'
Public Function ExecuteOne(inpStr, PatStr)
Dim oRe, oMatch, oMatches
Set oRe = New RegExp
oRe.Pattern = PatStr
inpStr = LCase(inpStr)
oRe.IgnoreCase = True
Set oMatches = oRe.Execute(inpStr)
Set oMatch = oMatches(0)
ExecuteOne = oMatch.SubMatches(0)
End Function
response.Write(GetMacInfo())
'代码中GETMACINFO函数仅仅可以获取首个网卡的MAC地址。
%>