この手順は特殊な方法です。使用範囲は比較的限られており、ある程度の危険性を伴います。 ASP バックドアからいくつかの方法を学びました。以下がプログラムコードです。
<%
薄暗いリモートアドレス
Request.ServerVariables("HTTP_X_FORWARDED_FOR")=空の場合
Remoteaddr=Request.ServerVariables("REMOTE_ADDR")
それ以外
Remoteaddr=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
end if
Response.Write(GetMac(remoteaddr))
'特定の IP のネットワーク カード MAC アドレスを読み取るため
このプログラムは、arp コマンドを呼び出してローカル arp テーブルをクエリすることにより、特定の IP の MAC アドレスを読み取ります。
'このプログラムを使用する際は、次の点にご注意ください。
' このプログラムには、「WSCRIPT.SHELL」と「Scripting.FileSystemObject」の 2 つのコンポーネントが必要です。サーバーがこれら 2 つのコンポーネントを正常に使用できることを確認してください。
' このプログラムは cmd.exe プログラムを呼び出す必要があります。IIS ゲスト アカウントにプログラムへのアクセス権があることを確認してください。
' このプログラムでは結果を保存するために一時ファイルが必要です。IIS ゲスト アカウントに一時ディレクトリへの書き込み権限があることを確認してください。
'
関数 GetMac(IP)
エラー時は次へ再開
Dim oScript
Dim oFileSys、oFile
すべてを暗く、szTempFile、ipc、phyc、typec
薄暗い温度パス
oScript = Server.CreateObject("WSCRIPT.SHELL") を設定します
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
TempPath="d:temp" '一時ディレクトリ
szTempFile = TempPath & oFileSys.GetTempName() ' 一時ファイル名を取得します
Call oScript.Run ("cmd.exe /c ping -n 2 " & IP, 0, True) ' この IP が arp テーブルにあることを確認します
oScript.Run を呼び出します ("cmd.exe /c arp -a " & IP & " > " & szTempFile, 0, True)
oFile = oFileSys.OpenTextFile (szTempFile、1、False、0) を設定します。
All=oFile.ReadAll()
oファイル.閉じる
If (IsObject(oFile)) then
oFileSys.DeleteFile(szTempFile, True) を呼び出す
終了の場合
arr = 分割(すべて、vbCrLf)
UBound(arr) = 4 の場合
ipc = InStr(1, arr(2), "インターネット アドレス")
phyc = InStr(1, arr(2), "物理アドレス")
typec = InStr(1, arr(2), "タイプ")
typec > phyc および phyc > ipc および ipc > 0 の場合
GetMac=Ucase(Trim(CStr(Mid(arr(3), phyc, typec - phyc))))
終了の場合
終了の場合
終了機能
%>