⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 51.txt

📁 VB文章集(含API、窗口、数据库、多媒体、系统、文件、等等)
💻 TXT
字号:
取得网卡序列号   

  很多软件以取得网卡地址作为License验证,这不失为一个验证合法用户的好办法,不过要付出回复用户电话、传真的代价哦 ^_^ 
  将下面这段代码拷贝到程序中,然后在你的程序需要的时候调用EthernetAddress(0),该函数返回的字符串就是您机器上网卡的以太序列号。 

Private Const NCBASTAT = &H33 
Private Const NCBNAMSZ = 16 
Private Const HEAP_ZERO_MEMORY = &H8 
Private Const HEAP_GENERATE_EXCEPTIONS = &H4 
Private Const NCBRESET = &H32 

Private Type NCB 
 ncb_command As Byte 
 ncb_retcode As Byte 
 ncb_lsn As Byte 
 ncb_num As Byte 
 ncb_buffer As Long 
 ncb_length As Integer 
 ncb_callname As String * NCBNAMSZ 
 ncb_name As String * NCBNAMSZ 
 ncb_rto As Byte 
 ncb_sto As Byte 
 ncb_post As Long 
 ncb_lana_num As Byte 
 ncb_cmd_cplt As Byte 
 ncb_reserve(9) As Byte ' Reserved, must be 0 
 ncb_event As Long 
End Type 

Private Type ADAPTER_STATUS 
 adapter_address(5) As Byte 
 rev_major As Byte 
 reserved0 As Byte 
 adapter_type As Byte 
 rev_minor As Byte 
 duration As Integer 
 frmr_recv As Integer 
 frmr_xmit As Integer 
 iframe_recv_err As Integer 
 xmit_aborts As Integer 
 xmit_success As Long 
 recv_success As Long 
 iframe_xmit_err As Integer 
 recv_buff_unavail As Integer 
 t1_timeouts As Integer 
 ti_timeouts As Integer 
 Reserved1 As Long 
 free_ncbs As Integer 
 max_cfg_ncbs As Integer 
 max_ncbs As Integer 
 xmit_buf_unavail As Integer 
 max_dgram_size As Integer 
 pending_sess As Integer 
 max_cfg_sess As Integer 
 max_sess As Integer 
 max_sess_pkt_size As Integer 
 name_count As Integer 
End Type 

Private Type NAME_BUFFER 
 name As String * NCBNAMSZ 
 name_num As Integer 
 name_flags As Integer 
End Type 

Private Type ASTAT 
 adapt As ADAPTER_STATUS 
 NameBuff(30) As NAME_BUFFER 
End Type 

Private Declare Function Netbios Lib "netapi32.dll" _
(pncb As NCB) As Byte 

Private Declare Sub CopyMemory Lib "kernel32" Alias _
"RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As Long, _
ByVal cbCopy As Long) 

Private Declare Function GetProcessHeap Lib "kernel32" () _
As Long 

Private Declare Function HeapAlloc Lib "kernel32" _
(ByVal hHeap As Long, ByVal dwFlags As Long, _
ByVal dwBytes As Long) As Long 

Private Declare Function HeapFree Lib "kernel32" _
(ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) _
As Long 

Private Function EthernetAddress(LanaNumber As Long) _
As String 

 Dim udtNCB    As NCB 
 Dim bytResponse As Byte 
 Dim udtASTAT   As ASTAT 
 Dim udtTempASTAT As ASTAT 
 Dim lngASTAT   As Long 
 Dim strOut    As String 
 Dim x      As Integer 

 udtNCB.ncb_command = NCBRESET 
 bytResponse = Netbios(udtNCB) 
 udtNCB.ncb_command = NCBASTAT 
 udtNCB.ncb_lana_num = LanaNumber 
 udtNCB.ncb_callname = "* " 
 udtNCB.ncb_length = Len(udtASTAT) 
 lngASTAT = HeapAlloc(GetProcessHeap(), _
HEAP_GENERATE_EXCEPTIONS Or HEAP_ZERO_MEMORY, udtNCB.ncb_length) 

 strOut = "" 
 If lngASTAT Then 
  udtNCB.ncb_buffer = lngASTAT 
  bytResponse = Netbios(udtNCB) 
  CopyMemory udtASTAT, udtNCB.ncb_buffer, Len(udtASTAT) 
   With udtASTAT.adapt 
   For x = 0 To 5 
    strOut = strOut & Right$("00" & Hex$(.adapter_address(x)), 2) 
   Next x 
  End With 
  HeapFree GetProcessHeap(), 0, lngASTAT 
 End If 
 EthernetAddress = strOut 
End Function  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -