Отправить сообщение UPDClient, используя mac-адрес?

У меня есть код, который использует Indy.Sockets.UDPClient для отправки сообщений на компьютеры в локальной сети с использованием IP-адреса и порта прослушивания (которые я храню в базе данных):

public static void SendMessage(Client pClient)
{
    UDPClient udpClient = new UDPClient();
    udpClient.Host = pClient.ServerIP;
    udpClient.Port = pClient.fListeningOnUDPPort;
    udpClient.SendBuffer(pClient.RestartMessage);
}

но требования изменились, и теперь мне нужно иметь возможность отправлять сообщения с использованием MAC-адреса (также хранящегося в базе данных), возможно ли отправить подобное сообщение с использованием MAC-адреса?

Или можно получить IP-адрес ПК по известному MAC-адресу?


person JamClerk    schedule 21.09.2012    source источник


Ответы (1)


Как только вы сможете найти IP-адрес с адресом Mac (http://fr.wikipedia.org/wiki/Address_Resolution_Protocol), вы сможете отправить ему сообщение с помощью UDPClient.

В этом сообщении описывается, как преобразовать IP-адрес из MAC-адреса с помощью ARP.exe.

person Olivier Kaisin    schedule 21.09.2012
comment
я пытался реализовать этот код, он вернул только 8 устройств в моей сети (которые, как я полагаю, являются серверами), но я знаю, что есть более 70 физических машин, которые не возвращаются. - person JamClerk; 21.09.2012
comment
Это странно, возможно, вам следует убедиться, что вы можете получить доступ к этим устройствам. - person Olivier Kaisin; 21.09.2012
comment
да, я проверил это, у меня есть еще один пример кода, который загружает все устройства в сети для данной рабочей группы, но я не могу использовать его, потому что моя программа не будет знать имя рабочей группы - person JamClerk; 21.09.2012