2012-02-27 91 views
1

我們正在尋找一種方法在Coldfusion中查找客戶端的MAC地址。在ColdFusion中查找MAC地址

有沒有辦法做到這一點?我們在JDK 1.6上使用CF 9,我相信它允許我們使用Java網絡層,但我更願意更接近CFML層。

回答

1

無法獲取客戶端的MAC通過Java地址,因爲它沒有通過任何請求。如果您確實需要它,您需要在客戶端運行一些代碼。請參閱此處以獲取更多信息:how to get a client's MAC address from HttpServlet?

您可以使用以上答案中引用的以下代碼獲取服務器的MAC地址。

<cfset LocalHost = CreateObject("java", "java.net.InetAddress").getLocalHost() /> 
<cfset Mac = CreateObject("java", "java.net.NetworkInterface").getByInetAddress(LocalHost).getHardWareAddress() /> 
<cfset MacAddress = '' /> 
<cfloop from="1" to="#ArrayLen(Mac)#" index="Pair"> 
    <!--- Convert it to Hex, and only use the right two AFTER the conversion---> 
    <cfset NewPair = Right(FormatBaseN(Mac[ Pair ], 16), 2) /> 

    <!--- If it's only one letter/string, pad it ---> 
    <cfset NewPair = Len(NewPair) EQ 1 ? '0' & NewPair : NewPair /> 

    <!--- Append NewPair --->  
    <cfset MacAddress &= UCase(NewPair) /> 

    <!--- Add the dash ---> 
    <cfif ArrayLen(Mac) NEQ Pair> 
     <cfset MacAddress &= '-' /> 
    </cfif> 
</cfloop> 
<cfdump var="#MacAddress#" /> 
+0

我認爲有一種方法可以獲取發出服務器請求的最後一個節點的MAC地址,但客戶端MAC地址在HTTP請求中不可用。 – 2012-02-27 15:08:29