Pessoal, Bom Dia.
Hoje tem alguns softwares que faz isso, obter o MAC com as maquinas desligadas na rede, mas gostaria de saber se tem alguma rotina em C# que possa fazer a mesma coisa.
Tenho varias maquinas aqui na empresa e preciso ligar elas remotamente, nesse caso preciso do MAC para ligar elas. Tenho um aplicativo em C# que faz varias rotinas, e gostaria de integrar essa função a ele.
O código abaixo obtém o MAC, porem só se a maquina estiver ligada, passando o IP da maquina como parâmetro me retorna o MAC da maquina.
public string MAC(string IPPC)
{
string MacPC = "";
try
{
IPAddress IP = IPAddress.Parse(IPPC);
byte[] macAddr = new byte[6];
uint macAddrLen = (uint)macAddr.Length;
if (SendARP((int)IP.Address, 0, macAddr, ref macAddrLen) != 0)
throw new Exception("Erro");
string[] str = new string[(int)macAddrLen];
for (int i = 0; i < macAddrLen; i++)
str[i] = macAddr[i].ToString("x2");
MacPC = string.Join(":", str);
}
catch (Exception x)
{
MessageBox.Show("erro :" + x.Message.ToString());
}
return MacPC;
}
* OBS. As maquinas já estão com a função wake on lan ativada.
Desde já agradeço.