取MAC地址

Sub wmiGetMac()
  Dim WmiObjSet, Obj
  Set WmiObjSet = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
                            InstancesOf("Win32_NetworkAdapterConfiguration")
  On Local Error Resume Next
  For Each Obj In WmiObjSet
      MsgBox Obj.macaddress
      MsgBox Obj.Description
      MsgBox Obj.DNSHostName
      MsgBox Obj.DNSDomain
      If Not IsNull(Obj.IPAddress) Then
         For i = 0 To UBound(Obj.IPAddress)
             MsgBox "IP address:" & Obj.IPAddress(i)
         Next
      End If
  Next
End Sub

 

Dim oAdapters As Object, oAdapter As Object
On Error Resume Next
Set oAdapters = GetObject("winmgmts:").ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
For Each oAdapter In oAdapters
MsgBox "MAC ADDRESS:  " & Replace(oAdapter.macaddress, ":", " ")
Exit For
Next 

易语言是一种编程语言,通过易语言可以方便地编写一些小型的应用程序。要在易语言中MAC地址,可以使用WinAPI中的一些函数来实现。 首先,可以使用GetAdaptersInfo函数来获所有网络适配器的信息。这个函数的原型是: Declare Function GetAdaptersInfo Lib "iphlpapi.dll" (pAdapterInfo As Any, pOutBufLen As Long) As Long 其中,pAdapterInfo参数是一个指向一个适配器信息结构体的指针。可以定义一个结构体来存储适配器信息,如下: Type _IP_ADAPTER_INFO Next As Long ComboIndex As Long AdapterName As String * MAX_ADAPTER_NAME_LENGTH Description As String * MAX_ADAPTER_DESCRIPTION_LENGTH AddressLength As Long Address(MAX_ADAPTER_ADDRESS_LENGTH - 1) As Byte Index As Long Type As Long DhcpEnabled As Long CurrentIpAddress As Any IpAddressList As _IP_ADDR_STRING GatewayList As _IP_ADDR_STRING DhcpServer As _IP_ADDR_STRING HaveWins As Long PrimaryWinsServer As _IP_ADDR_STRING SecondaryWinsServer As _IP_ADDR_STRING LeaseObtained As Long LeaseExpires As Long End Type 其中,Address是一个存储MAC地址的字节数组。 然后,可以调用GetAdaptersInfo函数来获适配器信息,这样就可以得到其中的MAC地址。需要注意的是,要先通过调用GetAdaptersInfo函数并传入一个NULL指针来获所需的缓冲区大小,然后再分配足够的内存来存储适配器信息。 具体的实现代码如下: Dim AdapterInfo As _IP_ADAPTER_INFO Dim OutBufLen As Long Dim Ret As Long OutBufLen = 0 Ret = GetAdaptersInfo(0, OutBufLen) If Ret = ERROR_BUFFER_OVERFLOW Then Dim BufferPtr As Long BufferPtr = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, OutBufLen) If BufferPtr <> 0 Then Ret = GetAdaptersInfo(BufferPtr, OutBufLen) If Ret = NO_ERROR Then Dim AdapterPtr As Long Dim AdapterCount As Long AdapterPtr = BufferPtr Do While AdapterPtr <> 0 CopyMemory AdapterInfo, ByVal AdapterPtr, Len(AdapterInfo) ' 可以在这里操作AdapterInfo中的MAC地址 AdapterPtr = AdapterInfo.Next Loop End If HeapFree GetProcessHeap(), 0, BufferPtr End If End If 以上是在易语言中MAC地址的基本方法,具体的实现还需要根据实际情况进行调整和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值