[Deskripsi Fungsi] Antarmuka ipX dan NETBIOS memerlukan alamat jaringan. Artikel ini menunjukkan cara mendapatkan alamat kartu jaringan melalui VB melalui langkah-langkah mendetail.
melangkah:
1) Hasilkan file EXE standar di VisualBasic. Form1 dibuat secara default.
2) Tambahkan tombol perintah di Form1, nama defaultnya adalah Command1.
3) Masukkan kode berikut ke dalam bagian deskripsi Form1.
Opsi Eksplisit
PRIvateConstNCBASTAT=&H33
PrivateConstNCBNAMSZ=16
PrivateConstHEAP_ZERO_MEMORY=&H8
PrivateConstHEAP_GENERATE_EXCEPTIONS=&H4
PrivateConstNCBRESET=&H32
Tipe PribadiNCB
ncb_commandAsByte'Bilangan Bulat
ncb_retcodeAsByte'Bilangan Bulat
ncb_lsnAsByte'Bilangan Bulat
ncb_numAsByte'Bilangan Bulat
ncb_bufferAsLong'String
ncb_lengthAsInteger
ncb_callnameAsString*NCBNAMSZ
ncb_nameAsString*NCBNAMSZ
ncb_rtoAsByte'Bilangan Bulat
ncb_stoAsByte'Bilangan Bulat
ncb_postAsLong
ncb_lana_numAsByte'Bilangan Bulat
ncb_cmd_cpltAsByte'Bilangan Bulat
ncb_reserve(9)SebagaiByte'Reserved,harus0
ncb_eventAsLong
Tipe Akhir
PrivateTypeADAPTER_STATUS
adapter_address(5)AsByte'AsString*6
rev_majorAsByte'Bilangan Bulat
dicadangkan0AsByte'Bilangan Bulat
adapter_typeAsByte'Bilangan Bulat
rev_minorAsByte'Bilangan Bulat
durasiAsInteger
frmr_recvAsInteger
frmr_xmitAsInteger
iframe_recv_errAsInteger
xmit_abortsAsInteger
xmit_successAsLong
recv_successAsLong
iframe_xmit_errAsInteger
recv_buff_unavailAsInteger
t1_timeoutsAsInteger
ti_timeoutsAsInteger
Dicadangkan1AsPanjang
free_ncbsAsInteger
max_cfg_ncbsAsInteger
max_ncbsAsInteger
xmit_buf_unavailAsInteger
max_dgram_sizeAsInteger
pending_sessAsInteger
max_cfg_sessAsInteger
max_sessAsInteger
max_sess_pkt_sizeAsInteger
nama_countAsInteger
Tipe Akhir
PrivateTypeNAME_BUFFER
namaAsString*NCBNAMSZ
nama_numAsInteger
nama_flagsAsInteger
Tipe Akhir
PrivateTypeASTAT
beradaptasiSebagaiADAPTER_STATUS
NamaBuff(30)SebagaiNAME_BUFFER
Tipe Akhir
PrivateDeclareFunctionNetbiosLib"netapi32.dll"(pncbAsNCB)AsByte
PrivateDeclareSubCopyMemoryLib"kernel32"Alias"RtlMoveMemory"(hpvDestAsAny,ByValhpvSourceAsLong,ByValcbCopyAsLong)
PrivateDeclareFunctionGetProcessHeapLib"kernel32"()AsLong
PrivateDeclareFunctionHeapAllocLib"kernel32"(ByValhHeapAsLong,ByValdwFlagsAsLong,ByValdwBytesAsLong)AsLong
PrivateDeclareFunctionHeapFreeLib"kernel32"(ByValhHeapAsLong,ByValdwFlagsAsLong,lpMemAsAny)AsLong
Masukkan kode berikut ke dalam acara Command1_Click:
PrivateSubCommand1_Klik()
DimmyNcbAsNCB
DimbRetAsByte
myNcb.ncb_command=NCBRESET
bRet=Netbios(Ncb saya)
myNcb.ncb_command=NCBASTAT
myNcb.ncb_lana_num=0
myNcb.ncb_callname="* "
DimmyASTATAsASTAT,tempASTATAsASTAT
DimpASTATAsPanjang
myNcb.ncb_length=Len(ASTAT saya)
Debug.PrintErr.LastDllError
pASTAT=HeapAlloc(GetProcessHeap(),HEAP_GENERATE_EXCEPTIONSAtauHEAP_ZERO_MEMORY,myNcb.ncb_length)
JikapASTAT=0Lalu
Debug.Cetak "memoryallcoationfailed!"
KeluarSub
AkhirJika
myNcb.ncb_buffer=pASTAT
bRet=Netbios(Ncb saya)
Debug.PrintErr.LastDllError
SalinMemorymyASTAT,myNcb.ncb_buffer,Len(myASTAT)
MsgBoxHex(myASTAT.adapt.adapter_address(0))&""&Hex(myASTAT.adapt.adapter_address(1))_
&""&Hex(ASTAT.adapt.adapter_address(2))&""_ saya
&Hex(ASTAT.adapt.adapter_address(3))_ saya
&""&Hex(ASTAT.adapt.adapter_address(4))&""_ saya
&Hex(ASTAT.adapt.adapter_address(5)) saya
HeapFreeGetProcessHeap(),0,pASTAT
Sub Akhir
4) Tekan F5 untuk menjalankan program.
5) Klik Perintah1. Perhatikan bahwa alamat kartu jaringan akan ditampilkan di kotak informasi. ->