Вы должны посмотреть таблицу ARP (Address Resolution Protocol) для локальной сети. В окне терминала вы можете сделать arp -a
в командной строке и распечатать таблицу ARP, которая показывает IP-адреса локальной сети и их ассоциации физических адресов (MAC-адреса). OSX хранит записи ARP в таблицах маршрутизации системы, но я не могу найти никаких хороших ссылок, которые показывают, как переводить записи в таблицу системной маршрутизации на MAC-адреса: я уверен, что есть где-то звонок sysctl
, но кто знает ? Существует один вопрос без ответа на Getting routing table on MACOSX (programmatically), что может помочь, но ...
На OSX, то arp
деталь на http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man4/arp.4.html: я честно предлагаю просто делать system
вызова и фильтрации результатов для нужного IP-адреса.
Исправьте меня, если я ошибаюсь, но MAC-адреса назначаются вашему оборудованию сетевого интерфейса и не имеют никакого отношения к IP-сети. – raidfive
@raidfive Я думаю, ему нужен MAC-адрес оборудования сетевого интерфейса, которому назначен этот IP-адрес. Например, я подключен к своей сети с помощью ethernet и Wi-Fi, как с уникальным IP-адресом, так и с уникальным MAC-адресом. –
Да, MAC назначается аппаратным средствам, но я думаю, что есть какой-то способ получить его с цель-c. Я знаю, как легко сделать это с помощью C#. –