Получить MAC-адрес всех устройств, подключенных к маршрутизатору WLAN в C # - PullRequest
2 голосов
/ 17 ноября 2011

Я пытаюсь получить mac-адреса всех устройств, подключенных к моей беспроводной точке доступа (которая работает на самом компьютере). До сих пор я смотрел на класс TCPConnectionInterface и класс NetworkInterface, но не смог найти любые методы для получения этой информации. Я также попробовал ManagedWiFi API , но это только показывает информацию о беспроводных сетях, которые находятся в пределах досягаемости.

Я бы хотел сделать что-то вроде этого:

foreach (ConnectedDevice device : MyWirelessAccessPoint.getDevices()) {
   Console.writeline(device.getMacAddress());
}

Любые предложения о том, как это можно сделать?

Ответы [ 2 ]

0 голосов
/ 17 ноября 2011

Я понимаю, что не очень полезно рассказывать вам как сделать это, но я бы порекомендовал вам посмотреть, как извлечь "arp cache" вашей машины.

Каждая машина в сети поддерживает свой собственный кэш arp, который сопоставляет MAC-адреса с IP-адресами. Поскольку ваша машина фактически выступает в качестве беспроводной точки доступа, я предполагаю, что вы можете быть уверены, что arp-кеш вашей машины обновлен.

РЕДАКТИРОВАТЬ: функция GetIpNetTable Windows API выглядит многообещающе: http://msdn.microsoft.com/en-us/library/aa365956(v=VS.85).aspx

РЕДАКТИРОВАТЬ2: Кроме того, вы можете обратиться к этому вопросу: Как получить доступ к информации ARP-протокола через .NET?

0 голосов
/ 17 ноября 2011

Если у вас есть IP-адрес устройства, вы можете использовать http://www.pinvoke.net/default.aspx/iphlpapi.sendarp для получения MAC-адреса.

/ Тиби

...