WOL(WAKE ON LAN)패킷 이란?
2018. 12. 21. 10:55
WOL(Wake On Lan)패킷 이란?
- WOL매킷(매직패킷)이란, 16진수 FF FF FF FF FF FF 뒤에 맥주소를 일렬로 16번 중단없이 이은 102Byte 짜리 패킷으로 포트 지정 후 해당 패킷을 전송하면 컴퓨터에 전원이 입력됩니다.
- Remote Wake-up이라고도 하는 Wake on LAN은 특수한 데이터 패킷(*매직 패킷이라고 함)을 전송하여 네트워크 컴퓨터를 원격으로 켤 수 있는 기술입니다. 컴퓨터가 꺼진 경우에도 네트워크 어댑터가 계속해서 네트워크를 "수신 대기"하므로 특수한 패킷이 도착하면 네트워크 어댑터가 컴퓨터를 켤 수 있습니다.
WOL(WAKE ON LAN)패킷 사용방법 및 설정
- 우선 꺼져있는 PC는 IP가 없으므로 네트워크를 통해 직접적인 신호를 보낼 수 없습니다. 때문에 공유기 또는 라우터에게 매직패킷을 전송하며, 전송시에는 브로드캐스팅 방식을 사용 합니다.
- 이는 특정 IP로 신호를 보내는 것이 아니라 같은망에 있는 모든 랜선에 동일한 신호를 보내 모든 PC가 해당 패킷을 수신할 수 있게 하기 위해서 입니다. 이 과정에서 꺼져있던 PC는 매직 패킷을 수신하게 되며 PC는 이에 반응해 부팅하게 됩니다.
- WOL 패킷을 사용하기 위한 설정으로는 보통은 아래와 같은 과정을 거치면 되며, 설정 관련 부분은 PC, OS마다 다를 수 있습니다.
- 장치관리자-네트워크어댑터-랜카드드라이버-속성-고급-웨이크 온 랜 종료-사용함 으로 변경 후
- 장치관리자-네트워크어댑터-랜카드드라이버-속성-전원관리-모두 체크 해제를 합니다.
- 바이오스-PME~~~-사용함
C# Code
using System.Net;
using System.Net.Sockets;
namespace WakeOnLan
{
class Program
{
static void Main(string[] args)
{
byte[] mac = new byte[] { 0x00, 0x07, 0x00, 0x00, 0x00, 0x00 }; //mac주소 쓰면됨.
WakeUp(mac);
}
private static void WakeUp(byte[] mac)
{
UdpClient client = new UdpClient();
client.Connect(IPAddress.Broadcast, 40000);
byte[] packet = new byte[17 * 6];
for (int i = 0; i < 6; i++)
{
packet[i] = 0xFF;
}
for (int i = 1; i <= 16; i++)
{
for (int j = 0; j < 6; j++)
{
packet[i * 6 + j] = mac[j];
}
}
client.Send(packet, packet.Length);
}
}
}
'etc.' 카테고리의 다른 글
Native Code와 Managed Code (0) | 2021.04.19 |
---|---|
int main( )? void main( )? (0) | 2018.12.21 |