Saat membangun sistem dengan struktur B/S, kita sering kali perlu memperoleh beberapa informasi tentang klien, seperti IP dan MAC, untuk menggabungkannya dengan otentikasi identitas. Di ASP.NET, mudah untuk mendapatkan alamat MAC server, tetapi membutuhkan banyak usaha untuk mendapatkan alamat MAC klien. Metode yang biasa dilakukan adalah dengan memanggil Win32API atau langsung memanggil perintah nbtstat banyak masalah dengan ini, dan yang lainnya Metode pertama adalah langsung menggunakan skrip sisi klien. Kami menggunakan Javascript di sini. Keuntungannya adalah tidak memerlukan pemrosesan sisi server. Klien dapat memperolehnya sendiri dan meneruskannya ke sisi server, dan kecepatan serta keandalannya lebih baik daripada mendapatkannya di sisi server.
Implementasi spesifik html dan javascript adalah sebagai berikut:
<HTML><HEAD><TITLE>HTML Skrip WMI</TITLE>
<META http-equiv=Jenis Konten content="text/html; charset=gb2312">
<Bahasa SCRIPT=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>
dokumen.forms[0].txtMACAddr.value=unescape(MACAddr);
dokumen.forms[0].txtIPAddr.value=unescape(IPAddr);
dokumen.forms[0].txtDNSName.value=unescape(sDNSName);
//dokumen.formbar.submit();
</SCRIPT>
<SCRIPT bahasa=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>
if(objObject.IPEnabled != null && objObject.IPEnabled != "tidak terdefinisi" && objObject.IPEnabled == true)
{
if(objObject.MACAddress != null && objObject.MACAddress != "tidak terdefinisi")
MACAddr = objObject.MACAddress;
if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "tidak terdefinisi")
IPAddr = objObject.IPAddress(0);
if(objObject.DNSHostName != null && objObject.DNSHostName != "tidak terdefinisi")
sDNSName = objObject.DNSHostName;
}
</SCRIPT>
<META content="MSHTML 6.00.2800.1106" nama=GENERATOR></HEAD>
<TUBUH>
<ID OBYEK=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<ID OBYEK=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
<Bahasa SKRIP=JScript>
var layanan = pencari lokasi.ConnectServer();
varMACAddr;
varIPAddr;
var DomainAddr;
var sDNSNama;
service.Security_.ImpersonationLevel=3;
layanan.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</SCRIPT>
<FORM id=formfoo name=formbar action=NICPost.asp method=post><INPUT value=00:05:5D:0E:C7:FA name=txtMACAAddr> <INPUT value=192.168.0.2 name=txtIPAddr > <INPUT nilai=ketik nama=txtDNSName> </FORM></BODY></HTML>
Kuncinya adalah menggunakan dua ActiveX:
<ID OBYEK=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<ID OBYEK=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
Namun, kedua ActiveX ini hadir dengan sistem dan tidak perlu diunduh atau didaftarkan.
Langkah selanjutnya adalah menggunakan script untuk berinteraksi dengan ActiveX. Scriptnya bisa js atau Vbs.