Este procedimento é um método especial. O escopo de uso é relativamente limitado e existe um certo grau de perigo. Aprendi alguns métodos com o backdoor asp. Abaixo está o código do programa.
<%
escurecer endereço remoto
se Request.ServerVariables("HTTP_X_FORWARDED_FOR")=vazio então
remoteaddr=Request.ServerVariables("REMOTE_ADDR")
outro
remoteaddr=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
terminar se
Response.Write(GetMac(remoteaddr))
'Devido à leitura do endereço MAC da placa de rede de um determinado IP
'Este programa lê o endereço MAC de um IP específico chamando o comando arp e consultando a tabela arp local.
'Por favor, observe o seguinte ao usar este programa:
' Este programa requer dois componentes: "WSCRIPT.SHELL" e "Scripting.FileSystemObject". Certifique-se de que seu servidor possa usar esses dois componentes normalmente.
'Este programa precisa chamar o programa cmd.exe Certifique-se de que a conta de convidado do IIS tenha direitos de acesso ao programa.
'Este programa requer arquivos temporários para salvar os resultados. Certifique-se de que a conta de convidado do IIS tenha permissões de gravação no diretório temporário.
'
função GetMac (IP)
Em caso de erro, retomar o próximo
Escurecer oScript
Dim oFileSys, oFile
Dim All, szTempFile,ipc,phyc,typec
Diminuir TempPath
Definir oScript = Server.CreateObject("WSCRIPT.SHELL")
Definir oFileSys = Server.CreateObject("Scripting.FileSystemObject")
TempPath="d:temp" 'Diretório temporário
szTempFile = TempPath & oFileSys.GetTempName() 'Obtém o nome do arquivo temporário
Chame oScript.Run ("cmd.exe /c ping -n 2 " & IP, 0, True) ' Certifique-se de que este IP esteja na tabela arp
Chame oScript.Run ("cmd.exe /c arp -a " & IP & " > " & szTempFile, 0, True)
Definir oFile = oFileSys.OpenTextFile (szTempFile, 1, Falso, 0)
Tudo=oArquivo.ReadAll()
oArquivo.Fechar
Se (IsObject(oFile)) Então
Chame oFileSys.DeleteFile(szTempFile, True)
Terminar se
arr = Dividir(Todos, vbCrLf)
Se UBound(arr) = 4 Então
ipc = InStr(1, arr(2), "Endereço de Internet")
phyc = InStr(1, arr(2), "Endereço Físico")
typec = InStr(1, arr(2), "Tipo")
Se typec > phyc E phyc > ipc E ipc > 0 Então
GetMac=Ucase(Trim(CStr(Mid(arr(3), phyc, typec - phyc))))
Terminar se
Terminar se
Função final
%>