using System;
using System.Net;
using System.Net.Sockets;
using System.Linq;
public class MagicPacket
{
public static void Send( string ipAddress, string macAddress)
{
//UDP Port 9
IPEndPoint pEndPoint = new IPEndPoint(IPAddress.Parse(ipAddress), 9 );
byte[] macAddrBytes =
//將aa:bb:cc:dd:ee:ff或aa-bb-cc-dd-ee-ff MAC地址轉成byte[]
macAddress.Split('-' , ':')
.Select(o => Convert.ToByte(o, 16)).ToArray();
//送出UPD封包
using (UdpClient udpClient = new UdpClient ())
{
byte[] data = new byte[102 ];
//最前方六個0xff
for (var i = 0 ; i < 6; i ++ )
data[i] = 0xff ;
//重複16次MAC地址
for (int j = 1 ; j <= 16; j ++ )
{
macAddrBytes.CopyTo(data, j * 6);
}
udpClient.Send(data, (int)data.Length, pEndPoint);
udpClient.Close();
}
}
}