在ASP中取得服务器网卡的MAC地址、DNS地址等网络信息

  • 来源: 互联网 作者: rocket   2008-03-24/11:03
  •  前言,笔者由于前段时间要做一个MIS系统的开发,由于该MIS为一个非免费软件,故在完成该系统开发时相应的注册模块也须开发,由于为B/S结构的系统,所以在注册特征码的选择上我选择了独一无二的网卡MAC地址。闲话少说,下面切入正题。由于该系统属商业软件,故以下代码中仅包含代码思路,及简单的实现代码,具体大家可根据代码自由发挥,也可与我一起切磋。

    '----------------------提取所有网卡的信息--------------------'

    Public Function GetMacInfo()
        On Error Resume Next

        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)
                If InStr(LCase(SysDir), "system32") = 0 Then
                GetMacInfo = "本系统只能运行在Nt、Windows 2000、Windows.Net、Windows Xp、Windows 2003等32位系统下,不支持32位以下的系统!"
    'www.knowsky.com
                Exit Function
                Else
                CmdStr = SysDir + "\Cmd.exe /C " + SysDir + "\Ipconfig.exe /All > " + Server.MapPath(MacFile)
                End If
            CmdRe = Shell(CmdStr, vbHide)
            If CmdRe <> 0 Then
            Set MacFileContentFile = fso.OpenTextFile(Server.MapPath(MacFile), 1, False, TristateUseDefault)
            'GetMacInfo = MacFileContentFile.ReadAll()
            'Response.Flush
            FileStr = MacFileContentFile.ReadAll()
            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

    代码中GETMACINFO函数仅仅可以获取首个网卡的MAC地址,至于DNS、网关等信息大家可以举一反三啊。


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多