Страницы: 1
RSS
Определить IP по MAC-адресу, Определить IP по MAC-адресу
 
Доброго времени суток!

Прошу помощи, может кто сталкивался или просто знает как реализовать следующую задачу.
Допустим в столбце А имеется список MAC-адресов. Можно ли прошерстить этот список и через cmd или wmic найти соответствующие им IP-адреса?
Затруднение именно в части запроса через командную строку - как и какой запрос надо отправлять? или это невозможно и надо только сканером (отдельной программой) собирать и потом ВПРом выбирать?

Предполагается что это будет функция примерно такого вида:
A1B1
00-11-22-33-44-55 =GetIpByMac(A1)
 
Цитата
Александр Берг написал:
Можно ли прошерстить этот список и через cmd или wmic найти соответствующие им IP-адреса?
Современный IP сети не оперируют мак адресом на уровне клиента. ARP хранится на уровне сетевого оборудования. Сбор идет от обратного, то есть подсеть или подсети сканируются. То есть
Цитата
Александр Берг написал:
только сканером (отдельной программой) собирать и потом ВПРом выбирать
По вопросам из тем форума, личку не читаю.
 
Как-то так
Код
'https://stackoverflow.com/questions/828496/how-to-retrieve-this-computers-ip-address
Function GetIPv4ByMac(MAC)
    Const strComputer As String = "."   ' Computer name. Dot means local computer
    Dim objWMIService, IPConfigSet, IPConfig

    ' Connect to the WMI service
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    ' Get all TCP/IP-enabled network adapters
    Set IPConfigSet = objWMIService.ExecQuery _
        ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")
    
    For Each IPConfig In IPConfigSet
        With IPConfig
          If .MACAddress = MAC Then
              GetIPv4ByMac = .IPAddress(0) '.IPAddress(1) = IPv6
          End If
        End With
    Next
End Function
Изменено: testuser - 26.07.2024 06:47:55
 
Кtestuser,  ну это ж ip одного из локальных адаптеров а не адаптеров в сети. Хотя может я не корректно понял вопрос.
Изменено: БМВ - 26.07.2024 08:25:09
По вопросам из тем форума, личку не читаю.
 
БМВ, скорее я ошибся,
 
Скоро придёт ТС и узнаем правду )
Но всё-таки интересно, почему нельзя адаптировать одно из популярных решений, например по первой же ссылке из гугла
https://qna.habr.com/q/64770
 
Цитата
написал:
Как-то так
Всем спасибо за отклик! предложенная функция срабатывает к сожалению только с mac-адресом компа на котором запускается макрос. Другие устройства  в сети (знаю точно что включенные) не определяет, выдает 0. Цель этой затеи - собирать ip телефонов для подключения по вэб-интерфейсу для настройки.
И еще может кому пригодится: функция чувствительна к регистру и разделителю - адрес надо писать через : а буквы только заглавные
 
Цитата
nilske написал:
Но всё-таки интересно, почему нельзя адаптировать одно из популярных решений
наверно по тому что это только в преелах одного сегмента, а такое сейчас редко встречается, у нас в одной комнате 3 раздельных сети + принтерная + телефония тоже отдельная.

Цитата
Александр Берг написал:
Цель этой затеи - собирать ip телефонов для подключения по вэб-интерфейсу для настройки.
Ну у меня была иная задача и решил сканированием диапазона с WebQuery и вытаскиванием из него серйиного номера , модели.
Изменено: БМВ - 26.07.2024 10:26:52
По вопросам из тем форума, личку не читаю.
 
Цитата
nilske, написал:
Скоро придёт ТС и узнаем правду )Но всё-таки интересно, почему нельзя адаптировать одно из популярных решений, например по первой же ссылке из гугла https://qna.habr.com/q/64770
Да, такое решение популярно, встречал не раз. К сожалению мои познания в VBA пока не позволяют адаптировать такой скрипт в эксель. Поэтому вопрос можно изложить так: как собрать (типа парсера) полученные arp данные в массив пар mac-ip. а там уж прочесать его думаю я сам справлюсь
 
Цитата
написал:
наверно по тому что это только в преелах одного сегмента, а такое сейчас редко встречается, у нас в одной комнате 3 раздельных сети + принтерная + телефония тоже отдельная.
в моем случае сегмент один

Цитата
написал:
Ну у меня была иная задача и решил сканированием диапазона с WebQuery и вытаскиванием из него серйиного номера , модели.
я так понимаю ip в вашем случае известен.
 
Цитата
Александр Берг написал:
понимаю ip в вашем случае известен.
известен диапазон IP . те что ответят протестируются, те что нет  останутся без данных.
Я обычно несколько раз прогонял, так как устройства могут быть не в сети. Фильтр для это сделан.
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх