vb wmi函数断网后无法获取mac地址

如何利用VB调出网卡的MAC地址?-+=急=+- 80分送上。
[问题点数:80分,结帖人qinzhen]
如何利用VB调出网卡的MAC地址?-+=急=+- 80分送上。
[问题点数:80分,结帖人qinzhen]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2000年7月 VB大版内专家分月排行榜第一
2000年6月 VB大版内专家分月排行榜第二
匿名用户不能发表回复!|获取网卡MAC地址,得到物理地址,VB源代码下载_最火下载站
您的位置: >
> 获取网卡MAC地址,得到物理地址,VB源代码下载
获取网卡MAC地址,得到物理地址,VB源代码
运行环境:windows/vb6.0
更新时间: 20:14:49
论坛转帖:
有无插件:无插件
分&享&到:
VB获取网卡的物理地址,也就是MAC地址,网络编程必备的基础知识,通过本例子,你将掌握这一知识技巧。
点击链接开始下载vb获取网卡mac的完整代码_百度知道
vb获取网卡mac的完整代码
求vb获取网卡mac的完整代码注:需要获取的是物理网卡的mac,非可修改的操作系统的mac谢谢!满意的话可以加分!
“聚网力量”的读取结果是全0;“Coo_boi”的读取结果是我在 “本地连接”-“属性”-“配置”-“网络地址” 中自定义的mac,没有成功读取我电脑的网卡mac哦!请问怎么样才能获取《我电脑现在插着的网卡的mac,而不是我自己定义的mac?》谢谢! ===========================================================================================这样说吧,我做了个软件,要绑定指定的电脑,于是想通过绑定网卡的mac,问题是如果获取的是自定义的mac就达不到绑定电脑的目的了(因为会变动),所以希望能够获取到插在电脑上的mac!请问能够实现吗?多谢指教!
我有更好的答案
MAC虽然具有唯一性,但如你所言也是能够变更的。所以你能取到的就是你当前网卡配置中的MAC地址。你可以试试,在你的cmd下输入 GetMAC。就能获取当前的MAC地址,也就是你是网卡的物理地址。和代码中的结果应该是一样的。
采纳率:38%
VB获取网卡MAC地址源代码 具体代码:(其中GetMACAddress() 函数为楼主所需函数)Option ExplicitPublic CheckCode As LongPrivate Const NCBASTAT
As Long = &H33Private Const NCBNAMSZ
As Integer = 16Private Const HEAP_ZERO_MEMORY
As Long = &H8Private Const HEAP_GENERATE_EXCEPTIONS
As Long = &H4Private Const NCBRESET
As Long = &H32Private Type NCB
ncb_command
ncb_retcode
ncb_buffer
ncb_length
As Integer
ncb_callname
As String * NCBNAMSZ
As String * NCBNAMSZ
ncb_lana_num
ncb_cmd_cplt
ncb_reserve(9)
As LongEnd TypePrivate Type ADAPTER_STATUS
adapter_address(5)
adapter_type
As Integer
As Integer
As Integer
iframe_recv_err
As Integer
xmit_aborts
As Integer
xmit_success
recv_success
iframe_xmit_err
As Integer
recv_buff_unavail
As Integer
t1_timeouts
As Integer
ti_timeouts
As Integer
As Integer
max_cfg_ncbs
As Integer
As Integer
xmit_buf_unavail
As Integer
max_dgram_size
As Integer
pending_sess
As Integer
max_cfg_sess
As Integer
As Integer
max_sess_pkt_size
As Integer
name_count
As IntegerEnd TypePrivate Type NAME_BUFFER
As String * NCBNAMSZ
As Integer
name_flags
As IntegerEnd TypePrivate Type ASTAT
As ADAPTER_STATUS
NameBuff(30)
As NAME_BUFFEREnd TypePrivate Declare Function Netbios Lib &netapi32.dll& (pncb As NCB) As BytePrivate 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 LongPrivate Declare Function HeapAlloc Lib &kernel32& (ByVal hHeap As Long, _
ByVal dwFlags As Long, _
ByVal dwBytes As Long) As LongPrivate Declare Function HeapFree Lib &kernel32& (ByVal hHeap As Long, _
ByVal dwFlags As Long, _
lpMem As Any) As LongPublic Function GetMAC() As IntegerDim bRet
Dim myASTAT As ASTAT
Dim pASTAT
Dim intMAC As Integer
myNcb.ncb_command = NCBRESET
bRet = Netbios(myNcb)
With myNcb
.ncb_command = NCBASTAT
.ncb_lana_num = 0
.ncb_callname = &* &
.ncb_length = Len(myASTAT)
pASTAT = HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS Or HEAP_ZERO_MEMORY, .ncb_length)
If pASTAT = 0 Then
Exit Function
myNcb.ncb_buffer = pASTAT
bRet = Netbios(myNcb)
CopyMemory myASTAT, myNcb.ncb_buffer, Len(myASTAT)
intMAC = myASTAT.adapt.adapter_address(0)
intMAC = intMAC + myASTAT.adapt.adapter_address(1)
intMAC = intMAC + myASTAT.adapt.adapter_address(2)
intMAC = intMAC + myASTAT.adapt.adapter_address(3)
intMAC = intMAC + myASTAT.adapt.adapter_address(4)
intMAC = intMAC + myASTAT.adapt.adapter_address(5)
GetMAC = intMAC
Call HeapFree(GetProcessHeap(), 0, pASTAT)End FunctionPublic Function GetMACAddress() As StringDim bRet
Dim myASTAT As ASTAT
Dim pASTAT
myNcb.ncb_command = NCBRESET
bRet = Netbios(myNcb)
With myNcb
.ncb_command = NCBASTAT
.ncb_lana_num = 0
.ncb_callname = &* &
.ncb_length = Len(myASTAT)
pASTAT = HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS Or HEAP_ZERO_MEMORY, .ncb_length)
If pASTAT = 0 Then
Exit Function
myNcb.ncb_buffer = pASTAT
bRet = Netbios(myNcb)
CopyMemory myASTAT, myNcb.ncb_buffer, Len(myASTAT)
GetMACAddress = HexEx(myASTAT.adapt.adapter_address(0)) & &-& & HexEx(myASTAT.adapt.adapter_address(1)) & &-& & HexEx(myASTAT.adapt.adapter_address(2)) & &-& & HexEx(myASTAT.adapt.adapter_address(3)) & &-& & HexEx(myASTAT.adapt.adapter_address(4)) & &-& & HexEx(myASTAT.adapt.adapter_address(5))
Call HeapFree(GetProcessHeap(), 0, pASTAT)End FunctionPrivate Function HexEx(ByVal B As Long) As String
Dim aa As String
aa = Hex$(B)
If Len(aa) & 2 Then
aa = &0& & aa
HexEx = aaEnd Function
参考资料:
安全中国编程中心
为您推荐:
其他类似问题
您可能关注的内容
mac的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。vb.net 如何获取本地MAC地址_百度知道
vb.net 如何获取本地MAC地址
千万别从别处超答案来。因为互联上关于这个的文章我几乎看边了,由于本人实在是愚钝,我都不会。我需要一个高手直接简单明了的给我一个答案,MAC放在text1.text里,要亲自调试可以的。。也被推荐我看着看那的,本人也没有空。
我有更好的答案
  使用system.menagement命名空间中的类,其实是引用了WMI,范例代码如下:  Dim netid as String=&&  Dim searcher as New ManagermentObjectSearch(&select * from win32_NetworkAdapterConfiguration&)  Dim moc2 as ManagementObjectCollection = searcher.Get()  For Each mo as
ManagementObject
in moc2  netid = mo.Properties[&MACAddress&].Value.ToString  Next  
资深电脑人
Dim Wmi As New System.Management.ManagementObjectSearcher(&SELECT * FROM Win32_NetworkAdapterConfiguration&)
For Each WmiObj As Management.ManagementObject In Wmi.Get
If CBool(WmiObj(&IPEnabled&)) Then
TextBox2.Text = WmiObj(&MACAddress&)
NextMy Project =& 引用 =& .NET =& 添加=& system.management
本回答被提问者和网友采纳
为您推荐:
其他类似问题
您可能关注的内容
mac地址的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。没有更多推荐了,
不良信息举报
举报内容:
使用GetAdaptersAddresses函数获取物理MAC地址
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!}

我要回帖

更多关于 mac设置不休眠不断网 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信