Предисловие. Автор некоторое время назад хотел разработать систему MIS. Поскольку MIS является несвободным программным обеспечением, при завершении разработки системы также необходимо разработать соответствующий регистрационный модуль. Поскольку это система со структурой B/S. поэтому при регистрации для выбора кодов функций я выбрал уникальный MAC-адрес сетевой карты. Без дальнейших церемоний, давайте перейдем к делу. Поскольку эта система является коммерческим программным обеспечением, следующий код содержит только идеи кода и простой код реализации. Вы можете свободно экспериментировать с кодом или обсудить его со мной.
'----------------------Извлечение информации обо всех сетевых картах--------------------'
Открытая функция GetMacInfo()
При ошибке возобновить следующий
Dim fso, FileStr, AspSleepThread, CmdStr, SysDir, wshshell, CmdRe, MacFileContentFile, MacFileContent
Const MacFile = "Tmp YesoulSoft001.LLP"
Установите fso = Server.CreateObject("Scripting.FileSystemObject")
SysDir = Split(GlobalMod.GetSysDir, ",")(1)
Если InStr(LCase(SysDir), "system32") = 0 Тогда
GetMacInfo = «Эта система может работать только на 32-битных системах, таких как Nt, Windows 2000, Windows.Net, Windows Xp, Windows 2003 и т. д. Системы ниже 32-битных версий не поддерживаются!»
'www.downcodes.com
Выход из функции
Еще
CmdStr = SysDir + "Cmd.exe/C" + SysDir + "Ipconfig.exe /All > " + Server.MapPath(MacFile)
Конец, если
CmdRe = Shell(CmdStr, vbHide)
Если CmdRe <> 0 Тогда
Установите MacFileContentFile = fso.OpenTextFile(Server.MapPath(MacFile), 1, False, TristateUseDefault)
'GetMacInfo = MacFileContentFile.ReadAll()
'Response.Flush
FileStr = MacFileContentFile.ReadAll()
MacFileContentFile.Close
Установить MacFileContentFile = Ничего
Установите AspSleepThread = Server.CreateObject(" YesoulSoft.SleepThread")
'Определите время зависания потока, здесь это миллисекунды
AspSleepThread.SleepTime = 500
AspSleepThread.BeginSleepThread
GetMacInfo = ExecuteOne(FileStr, «Физический адрес. . . . . . . : (.*)»)
Установить AspSleepThread = Ничего
Еще
GetMacInfo = "В настоящее время система не может получить информацию о вашей сети. Пожалуйста, проверьте отношения наследования разрешений перед запуском этой системы!"
Выход из функции
Конец, если
ДелФайл
Установить fso = Ничего
Конечная функция
'------------------Сопоставить результат один раз в строке------------------'
Открытая функция ExecuteOne(inpStr, PatStr)
Dim oRe, oMatch, oMatches
Установить oRe = Новое регулярное выражение
oRe.Pattern = PatStr
inpStr = LCase(inpStr)
oRe.IgnoreCase = Истина
Установите oMatches = oRe.Execute(inpStr)
Установить oMatch = oMatches(0)
ExecuteOne = oMatch.SubMatches(0)
конечной функции
может получить только MAC-адрес первой сетевой карты. Что касается DNS, шлюза и другой информации, вы можете сделать выводы из одного примера.