서문에서 저자는 얼마전부터 MIS 시스템을 개발하고 싶었는데, MIS는 비자유 소프트웨어이기 때문에 B/S 구조의 시스템이기 때문에 시스템 개발이 완료되면 해당 등록 모듈도 함께 개발해야 합니다. 그래서 등록 과정에서 기능 코드 선택을 위해 고유한 네트워크 카드 MAC 주소를 선택했습니다. 더 이상 고민하지 않고 요점을 살펴보겠습니다. 본 시스템은 상용 소프트웨어이므로 다음 코드에는 코드 아이디어와 간단한 구현 코드만 포함되어 있습니다. 자유롭게 코드를 가지고 놀 수도 있고, 저와 함께 논의할 수도 있습니다.
'---------모든 네트워크 카드에 대한 정보 추출-------'
공용 함수 GetMacInfo()
오류 발생 시 다음 재개
Dim fso, FileStr, AspSleepThread, CmdStr, SysDir, wshshell, CmdRe, MacFileContentFile, MacFileContent
Const MacFile = "TmpYesoulSoft001.LLP"
fso = Server.CreateObject("Scripting.FileSystemObject") 설정
SysDir = 분할(GlobalMod.GetSysDir, ",")(1)
InStr(LCase(SysDir), "system32") = 0이면
GetMacInfo = "이 시스템은 Nt, Windows 2000, Windows.Net, Windows Xp, Windows 2003 등과 같은 32비트 시스템에서만 실행할 수 있습니다. 32비트 미만의 시스템은 지원되지 않습니다!"
'www.downcodes.com
종료 기능
또 다른
CmdStr = SysDir + "Cmd.exe /C " + SysDir + "Ipconfig.exe /All > " + Server.MapPath(MacFile)
종료 조건
CmdRe = 쉘(CmdStr, vbHide)
CmdRe <> 0이면
MacFileContentFile = fso.OpenTextFile(Server.MapPath(MacFile), 1, False, TristateUseDefault) 설정
'GetMacInfo = MacFileContentFile.ReadAll()
'응답. 플러시
FileStr = MacFileContentFile.ReadAll()
MacFileContentFile.Close
MacFileContentFile = 없음 설정
AspSleepThread = Server.CreateObject("YesoulSoft.SleepThread") 설정
'스레드가 정지되는 시간을 정의합니다. 여기서는 밀리초입니다.
AspSleepThread.SleepTime = 500
AspSleepThread.BeginSleepThread
GetMacInfo = ExecuteOne(FileStr, "물리적 주소. . . . . . . . . : (.*)")
AspSleepThread = 없음 설정
또 다른
GetMacInfo = "시스템이 현재 네트워크 정보를 얻을 수 없습니다. 이 시스템을 실행하기 전에 권한 상속 관계를 확인하십시오!"
종료 기능
종료 조건
델파일(DelFile) 맥파일
fso = 없음 설정
기능 종료
'------문자열에서 결과를 한 번 일치시킵니다----'
공용 함수 ExecuteOne(inpStr, PatStr)
희미한 oRe, oMatch, oMatches
oRe = 새 RegExp 설정
oRe.Pattern = PatStr
inpStr = LCase(inpStr)
oRe.IgnoreCase = 참
oMatches = oRe.Execute(inpStr) 설정
oMatch = oMatches(0) 설정
ExecuteOne = oMatch.SubMatches(0)
End Function
코드의 GETMACINFO 함수는 첫 번째 네트워크 카드의 MAC 주소만 얻을 수 있습니다. DNS, 게이트웨이 및 기타 정보는 한 가지 예에서 추론할 수 있습니다.