We used this code also to track things, make the best out of it.
<%
strIP = Request.ServerVariables("REMOTE_ADDR"

strMac = GetMACAddress(strIP)
strHost = Request.ServerVariables("REMOTE_HOST"
Function GetMACAddress(strIP)
Set net = Server.CreateObject("wscript.network"

Set sh = Server.CreateObject("wscript.shell"

sh.run "%comspec% /c nbtstat -A " & strIP & " > c:\" & strIP & ".txt",0,true
Set sh = nothing
Set fso = createobject("scripting.filesystemobject"

Set ts = fso.opentextfile("c:\" & strIP & ".txt"

macaddress = null
Do While Not ts.AtEndOfStream
data = ucase(trim(ts.readline))
If instr(data,"MAC ADDRESS"

Then
macaddress = trim(split(data,"="

(1))
Exit Do
End If
loop
ts.close
Set ts = nothing
'fso.deletefile "c:\" & strIP & ".txt" 'Used to delete the temp file
Set fso = nothing
GetMACAddress = macaddress
End Function
%>
<HTML>
<HEAD>
<TITLE> MAC MAN</TITLE>
</HEAD>
<BODY>
<%Response.Write("Your IP is : " & strIP & "<BR>" & vbcrlf)%>
<%Response.Write("Your MAC is : " & strMac & vbcrlf)%>
</BODY>
</HTML>