Как получить MAC-адрес для удаленной системы, если я знаю только его IP-адрес? - PullRequest
4 голосов
/ 27 мая 2009

Я работаю над службой Wake on LAN, которая будет запускаться с веб-сайта и должна взаимодействовать со многими различными платформами, поэтому никаких решений только для Windows. Когда пользователь регистрирует свою систему на веб-сайте, мне нужно получить MAC-адрес для использования при создании «магического» пакета . У меня есть Java-апплет, который может сделать это для меня, и я знаю об элементе управления ActiveX, который будет работать, но мне интересно, есть ли способ сделать это на стороне сервера, запрашивая маршрутизаторы / коммутаторы. Поскольку система может находиться в любой из нескольких различных физических подсетей, использование ARP не будет работать - если только у меня нет способа настроить маршрутизатор (-ы) для выполнения ARP от моего имени.

Кто-нибудь знает какие-либо сетевые API, проприетарные или иные, которые можно использовать для поиска MAC-адресов по IP-адресу? Я думаю, что мы используем маршрутизаторы Cisco, но это сложная сеть, и на разных уровнях может быть задействовано несколько поставщиков. Я хотел бы получить некоторую справочную информацию о возможных решениях, прежде чем пойти на жертву сетевым богам. Нет смысла унижать себя, если это технически невозможно. : -)

РЕДАКТИРОВАТЬ: Мы настроили сетевую инфраструктуру для разрешения направленной широковещательной передачи, хотя выясняем точный адрес широковещательной рассылки, поскольку сетевые маски не всегда / 24 - еще одна загадка, которую мне нужно решить.

Ответы [ 11 ]

0 голосов
/ 27 мая 2009

Я не думаю, что есть способ сделать это. Когда IP-пакет проходит через первый маршрутизатор, информация MAC хоста теряется (как вы знаете, MAC используется только на уровне Ethernet). Если маршрутизатор, наиболее близкий к вашему ПК, может сообщить вам удаленный MAC-код, он снова увидит MAC-адрес следующего маршрутизатора между вашим ПК и «другим концом».

...