はじめに、筆者は以前、MIS システムを開発したいと考えていました。MIS は非フリーのソフトウェアであり、B/S 構造のシステムであるため、システムの開発完了時に対応する登録モジュールも開発する必要があります。そのため、登録中に機能コードを選択するために、一意のネットワーク カードの MAC アドレスを選択しました。早速、本題に入りましょう。このシステムは商用ソフトウェアであるため、以下のコードにはコードのアイデアと簡単な実装コードのみが含まれています。自由にコードを試してみたり、私と話し合ったりすることができます。
'---------------------すべてのネットワーク カードに関する情報を抽出します---------------------'
パブリック関数 GetMacInfo()
エラー時再開次の
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)
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 の場合、次に
Set MacFileContentFile = fso.OpenTextFile(Server.MapPath(MacFile), 1, False, TristateUseDefault)
'GetMacInfo = MacFileContentFile.ReadAll()
'レスポンス.フラッシュ
FileStr = MacFileContentFile.ReadAll()
MacFileContentFile.Close
MacFileContentFile = なしを設定します
Set AspSleepThread = Server.CreateObject("YesoulSoft.SleepThread")
'スレッドがハングする時間を定義します。ここではミリ秒です
AspSleepThread.SleepTime = 500
AspSleepThread.BeginSleepThread
GetMacInfo = ExecuteOne(FileStr, "物理アドレス。 . . . . . . . . : (.*)")
AspSleepThread = なしを設定します
それ以外
GetMacInfo = "システムは現在ネットワーク情報を取得できません。このシステムを実行する前に権限の継承関係を確認してください。"
終了関数
終了の場合
DelFile MacFile
fso = 何も設定しない
終了機能
'---------------文字列内の結果を 1 回照合します-----------------'
パブリック関数 ExecuteOne(inpStr, PatStr)
ディムオーレ、オーマッチ、オーマッチ
oRe = 新しい正規表現を設定します
oRe.Pattern = PatStr
inpStr = LCase(inpStr)
oRe.IgnoreCase = True
oMatches = oRe.Execute(inpStr) を設定します。
oMatch = oMatches(0) を設定します。
ExecuteOne = oMatch.SubMatches(0)
End Function
コードの GETMACINFO 関数は、最初のネットワーク カードの MAC アドレスのみを取得できます。DNS、ゲートウェイ、その他の情報については、1 つの例から推測できます。