在javascript中获取客户端计算机的UUID

时间:2017-09-11 07:20:09

标签: javascript asp.net vbscript

我需要生成UUID以最终存储在数据库中。我可以在客户端浏览器上从Javascript生成这些UUID吗?

有谁能告诉我如何/我是否可以在我的asp.net/或javascript中获取客户端计算机标识符? (客户端在网络中而不是本地Intranet)

(什么是客户端计算机标识符?我认为如:客户端计算机MAC地址,或任何硬件GUID(如CPU,网卡等)?)

目前,我正在使用vbscript中的Activex通过以下代码生成客户端的UUID。

Public Function GetUUID(strComputer)

    Dim objWmi, colItems, objItem, strUUID, blnValidUUID

    Set objWmi = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWmi.ExecQuery("Select * from Win32_ComputerSystemProduct")
    strUUID = ""
    blnValidUUID = False
    For Each objItem In colItems
        strUUID = objItem.UUID
        If Not IsEmpty(strUUID) Or Not IsNull(strUUID) Then
            If (strUUID <> "00000000-0000-0000-0000-000000000000") And _
                (strUUID <> "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF") Then
                blnValidUUID = True
                Exit For
            End If
        End If
    Next
    Set objWmi = Nothing
    If Not blnValidUUID Then
        Set colItems = GetObject("winmgmts:" & strComputer & "\root\cimv2").InstancesOf("Win32_NetworkAdapter")
        For Each objItem In colItems
            If (objItem.AdapterType = "Ethernet 802.3") Then
                If (objItem.Description <> "Packet Scheduler Miniport") Then
                    strUUID = "00000000-0000-0000-0000-" & Replace(objItem.MacAddress, ":", "")
                    Exit For
                End If
            End If
        Next
        Set NicSet = Nothing
    End If
    GetUUID = strUUID

End Function

我不想再使用ActiveX了。相反,我想通过javascript来做到这一点。在javascript中,我发现了一些代码来唯一地生成一些UUID,如下面的代码所示:

var number = Math.random() // 0.9394456857981651
number.toString(36); // '0.xtis06h6'
var id = number.toString(36).substr(2, 9);

但对于上面的javascript代码,我在重复运行此脚本时为同一客户端获取不同的UUID。

另一方面,上面的vbscript甚至为同一个客户端生成唯一的id。即使脚本运行一个客户端pc一千次,该脚本生成相同的id,但对于另一台PC,它生成不同的id。

我想这样做。任何人都可以帮我这样做吗? (这是一个业务系统,客户被批准我们获取他们的客户端计算机硬件标识符,所以我该怎么做asp.net/JAVAScript?)。

修改 基本上我想在Javascript中做到这一点因为VBScript中的ActiveX,我不能在除IE之外的任何浏览器中运行脚本。我想克服这个局限。

1 个答案:

答案 0 :(得分:0)

您需要查看浏览器指纹识别。 Fingerprintjs可用于浏览器ID:fingerprintjs2 另请查看EFF's演示