Получение списка IP адресов средствами VBA
- Макросы VBA Excel
- Работа с сетью и оборудованием
- Разное
|
Function Get_All_IP_Addresses() As Collection
' возвращает коллекцию, содержащую все IP-адреса всех сетевых интерфейсов
Set Get_All_IP_Addresses = New Collection
Set objWMIService = GetObject("winmgmts://./root/cimv2")
query = "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True"
Set colAdapters = objWMIService.ExecQuery(query) ' выполняем запрос
Dim IPaddr As String: On Error Resume Next
For Each objAdapter In colAdapters ' перебираем все интерфейсы
If Not IsNull(objAdapter.IPAddress) Then
For i = 0 To UBound(objAdapter.IPAddress) ' перебираем все IP адреса
IPaddr = objAdapter.IPAddress(i)
If Val(IPaddr) > 0 Then ' кроме адреса 0.0.0.0
' добавляем в коллекцию только уникальные значения
Get_All_IP_Addresses.Add IPaddr, IPaddr
End If
Next
End If
Next
End Function
Sub ВыводРезультатов_Get_All_IP_Addresses()
For Each IPaddr In Get_All_IP_Addresses
txt = txt & IPaddr & vbNewLine
Next
MsgBox txt, vbInformation, "Список всех IP адресов"
End Sub
|