我们正在寻找一种在Coldfusion中查找客户端MAC地址的方法。
有办法做到这一点吗?我们在JDK 1.6上使用CF 9,我相信它允许我们使用Java网络层,但我更希望更接近CFML层。
答案 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/