Remote Wake-up 이라고도 하는 Wake on Lan은 특수한 데이터 패킷(=매직 패킷)을 전송하여 네트워크 컴퓨터를 원격으로 켤 수 있는 기술이다.
컴퓨터가 꺼진 경우에도 네트워크 어댑터가 계속해서 네트워크를 "수신 대기" 하므로 특수한 패킷이 도착하면 네트워크 어댑터가 컴퓨터를 켤 수 있다.
Wake on Lan은 주로 컴퓨터 유지관리 작업을 원격으로 수행하기 위해 시스템 관리자가 사용한다. 매직 패킷을 수신하는 컴퓨터에는 Wake on Lan과
함께 작동하는 마더보드, 네트워크 어댑터, 어댑터 드라이버 및 컴퓨터 BIOS가 있어야한다.
매직패킷이란 16진수 FF FF FF FF FF FF 뒤에 맥주소를 일렬로 16번 중단 없이 이은 102Byte짜리 패킷이다. 해당 패킷을 포트지정 후 날리면 컴퓨터가 켜진다
.
사진 출처 : http://www.codeproject.com/Articles/11469/Wake-On-LAN-WOL?
[출처] WOL(Wake On Lan) - C#|작성자 으섭으섭
매직패킷을 보내기위해 같은 망에 있는 모든 랜선에 동일한 신호를 보내기위해 브로드캐스팅 방식을 사용한다.
설정경로
장치관리자 -> 네트워크 어댑터 -> 랜카드 드라이버 -> 속성 -> 고급 -> 웨이크 온 랜 사용으로 변경
장치관리자 -> 네트워크 어댑터 -> 랜카드 드라이버 -> 속성 -> 전원관리 -> 모두 체크해제
부팅 후 BIOS -> wol(Wake on Lan) 설정 <-- 각 메인보드 마다 설정 방법이 다르다.
C# 코드
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);
}
}
}
[출처] WOL(Wake On Lan) - C#|작성자 으섭으섭
'코딩 > C#' 카테고리의 다른 글
[C#] 박싱(Boxing) (0) | 2016.03.14 |
---|---|
[C#] 람다식(Lamda Expression) (0) | 2016.03.10 |
[C#] 마샬링(marshalling) (0) | 2016.03.09 |
[C#] 문자열 마샬링 (0) | 2016.03.04 |
[C#] 클래스와 구조체 (0) | 2016.03.03 |