Визначити IP адреса по MAC адресу

  1. Перегляд ARP кеша
  2. Наповнення ARP кеша
  3. Пакетний bat / cmd файл
  4. обмеження
  5. Приклад виконання команд (відео)
  6. Див. також

Наши партнеры ArtmMisto

Ця стаття розповідає, як дізнатися, який IP адреса має мережеве пристрій з відомим MAC адресою .

Це питання найчастіше виникає для мережевих пристроїв, таких як мережеві принтери або мережеві телекамери. Наприклад, ми підключили мережевий принтер або мережеву телекамеру до мережі з DHCP і хочемо дізнатися IP адресу цього пристрою, але доступу до статистики DHCP сервера немає. Або в ньому заданий статичний IP адреса, але ми не пам'ятаємо, який саме. При цьому ми знаємо MAC адреса (написаний на корпусі). Це питання буває актуальне і для комп'ютерів, особливо до яких немає фізичного доступу.

Консольні команди визначення IP адреси представлені на зображенні, а далі описано, чому команди повинні бути саме такими і як вони працюють, також наведено приклад bat файлу:
Консольні команди визначення IP адреси представлені на зображенні, а далі описано, чому команди повинні бути саме такими і як вони працюють, також наведено приклад bat файлу:   Спосіб працює на будь-якому Windows компьтере в мережі і не вимагає адміністративних повноважень Спосіб працює на будь-якому Windows компьтере в мережі і не вимагає адміністративних повноважень. використовується інформація ARP кешу, проводиться читання та пошук потрібного запису.

Перегляд ARP кеша

Командний рядок перегляду ARP кеша з пошуком записи за певним MAC адресою:

arp -a | find / i "01-23-45-67-89-ab"

Але, виконавши цю команду, ми можемо не побачити наше пристрій.

Це відбувається тому, що ARP кеш в Windows зберігає записи від 15 до 45 секунд, починаючи з Windows Vista: Address Resolution Protocol (ARP) caching behavior in Windows Vista TCP / IP implementations .

Наповнення ARP кеша

Тому перед читанням кешу необхідно заповнити його повним списком вузлів мережі. Це можна зробити, запустивши ping на всі вузли мережі, наприклад, якщо у нас мережа 192.168.1.1 / 255.255.255.0, то:

for / L% a in (1,1,254) do @start / b ping 192.168.1.% a -n 2> nul

Важливо, щоб запуск ping'ов відбувався як do @start / b ping, тоді

  • все ping'і запускаються майже одночасно, і час виконання циклу складе всього кілька секунд. Якщо написати просто do ping, тобто без start, то цикл буде виконуватися більше 10 хвилин.
  • значок @ перед start запобігає виводу 254 команд ping

Після завершення ping'ов потрібно відразу запускати arp -a. Пауза більше 15 секунд може привести до того, що якісь записи будуть видалені з кешу.

Пакетний bat / cmd файл

Те ж рішення у вигляді командного файлу ip_by_mac.cmd з передачею MAC адреси у вигляді параметра буде виглядати так:

@echo off if "% 1" == "" echo no MAC address & exit / b 1 for / L %% a in (1,1,254) do @start / b ping 192.168.1. %% a -n 2> nul ping 127.0.0.1 -n 3> nul arp -a | find / i "% 1"

Відповідно, запускаємо:

ip_by_mac 01-23-45-67-89-ab

і отримуємо:

192.168.1.221 01-23-45-67-89-ab динамічний

обмеження

Спосіб працює тільки для тих вузлів, які відповідають на ping (icmp запити), тобто якщо у комп'ютера icmp echo відключений, то цей командний файл не визначить його IP адреса.

Залишається незручність в тому, що потрібно явно вказувати підмережа, а так само обмеження на підмережа - командний файл працює тільки для мереж 255.255.255.0.

Приклад виконання команд (відео)

Файли для скачування

Цей командний файл, як і інші скрипти, можна скачати за засланні

Див. також

Всі командні файли .

В продовження теми - командний файл / скрипт для будь-яких мереж , Не тільки / 24.

Главное меню
Реклама

Архив новостей
ArtmMisto
Наши партнеры ArtmMisto. Игроки могут начать свое азартное приключение на сайте "Buddy.Bet", который только что открылся для всех ценителей азарта.

Реклама

© 2013 mexpola.h1a25414f