在ColdFusion中查找MAC地址

时间:2012-02-27 12:38:20

标签: coldfusion

我们正在寻找一种在Coldfusion中查找客户端MAC地址的方法。

有办法做到这一点吗?我们在JDK 1.6上使用CF 9,我相信它允许我们使用Java网络层,但我更希望更接近CFML层。

2 个答案:

答案 0 :(得分:1)

您无法通过java获取客户端的MAC地址,因为它不会随请求传递到任何地方。如果你确实需要它,你需要一些在客户端运行的代码。有关详细信息,请参阅此处: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#" />

答案 1 :(得分:0)

我个人没有这样做,但是这里有一个论坛讨论的链接,他们解释了如何做到这一点http://www.raymondcamden.com/forums/messages.cfm?threadid=39CC3269-19B9-E658-9DD1131DAB233CA8否则这也应该有用http://tutorial17.learncf.com/