Cette procédure est une méthode spéciale. Le champ d'utilisation est relativement limité et il existe un certain degré de danger. J'ai appris quelques méthodes grâce à la porte dérobée asp. Vous trouverez ci-dessous le code du programme.
<%
faible adresse distante
si Request.ServerVariables("HTTP_X_FORWARDED_FOR")=vide alors
addr_distant=Request.ServerVariables("REMOTE_ADDR")
autre
addr distant=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
terminer si
Response.Write (GetMac (remoteaddr))
'En raison de la lecture de l'adresse MAC de la carte réseau d'une certaine IP
'Ce programme lit l'adresse MAC d'une adresse IP spécifique en appelant la commande arp et en interrogeant la table arp locale.
'Veuillez noter les points suivants lorsque vous utilisez ce programme :
' Ce programme nécessite deux composants : "WSCRIPT.SHELL" et "Scripting.FileSystemObject". Veuillez vous assurer que votre serveur peut utiliser ces deux composants normalement.
' Ce programme doit appeler le programme cmd.exe. Veuillez vous assurer que le compte invité IIS dispose des droits d'accès au programme.
' Ce programme nécessite des fichiers temporaires pour enregistrer les résultats. Veuillez vous assurer que le compte invité IIS dispose des autorisations en écriture sur le répertoire temporaire.
'
fonction GetMac(IP)
En cas d'erreur, reprendre ensuite
Faible oScript
Dim oFileSys, oFile
Dim Tout, szTempFile,ipc,phyc,typec
Dim TempPath
Définir oScript = Server.CreateObject("WSCRIPT.SHELL")
Définir oFileSys = Server.CreateObject("Scripting.FileSystemObject")
TempPath="d:temp" 'Répertoire temporaire
szTempFile = TempPath & oFileSys.GetTempName() ' Obtenez le nom du fichier temporaire
Appelez oScript.Run ("cmd.exe /c ping -n 2 " & IP, 0, True) ' Assurez-vous que cette IP est dans la table arp
Appelez oScript.Run ("cmd.exe /c arp -a " & IP & " > " & szTempFile, 0, True)
Définir oFile = oFileSys.OpenTextFile (szTempFile, 1, False, 0)
Tout=oFile.ReadAll()
oFichier.Fermer
Si (IsObject(oFile)) Alors
Appelez oFileSys.DeleteFile (szTempFile, True)
Fin si
arr = Split (Tous, vbCrLf)
Si UBound(arr) = 4 Alors
ipc = InStr(1, arr(2), "Adresse Internet")
phyc = InStr(1, arr(2), "Adresse physique")
typec = InStr(1, arr(2), "Type")
Si typec > phyc Et phyc > ipc Et ipc > 0 Alors
GetMac=Ucase(Trim(CStr(Mid(arr(3), phyc, typec - phyc))))
Fin si
Fin si
Fin de fonction
%>