본문 바로가기

Dev Story/C#

원격 으로 PC 전원을 제어(WOL) 하는 셋팅 설명 및 C# 소스 공개 합니다. [셋팅 제대로 했는데 안될때 경우 팁 !! 도 있습니다.]

자동으로 PC 전원을 ON 시키는 프로그램을 설명 하고자 합니다.

이 기술은 WOL이라고 말하는데 Wake-On-Lan 의 줄임말 입니다.


이 프로그램 사용법은 24시간 PC가 돌아가야 하는 "환경" 에 적용 하면 적합합니다.



우선 프로그램 설명 전에 기본 셋팅 부터 해야 합니다.

설정하는 방법은 


1. 메인보드 셋팅2. 윈도우(OS) 셋팅 총 두가지를 해야 합니다.

[설정 방법]

1. 메인보드 셋팅 각 제조사마다 설정 방법이 다릅니다.

(ASUS 메인보드 설정)

http://ststory.com/15377

(ASRock 메인보드 설정)
https://brunch.co.kr/@hj1003/263

2. 윈도우(OS) 셋팅 WOL 설정 기능 Enable (Win10 기준)

https://blog.pagein.net/windows10-wol-%EC%84%A4%EC%A0%95-%EB%B0%A9%EB%B2%95/

※ 1,2 설정을 하였지만 안될 경우 랜카드 드라이버 업데이트 를 하세요 !!


위 부분을 몰라서 한참 시간을 투자 했네요

이제 셋팅 부분은 완성 되었고 프로그램 적인 부분을 설명 하겠습니다.

UI는 그리드 하나에 현재 처리 상태를 볼수 있는 리스트 박스 하나 입니다. 

작동 방식은 프로그램이 타이머를 돌면서 미리 설정된(server_info.txt) 

PC IP에 핑을 날려서 죽었는지 살았는지 체크를 합니다.  만약 죽었을경우에는

그 PC의 맥주소에 매직패킷(WOL 시키는) 을 전송 하여 전원을 ON 시키는 동작을 합니다.

소스 부분을 살펴 보겠습니다.



1. server_info.txt 파일에 정의된 Mac과 IP를 불러오는 소스 입니다.

2. 타이머가 돌면서 PC가 죽었는지 살았는지 확인 하는 구문입니다.

3. Ping 검사를 비동기 방식으로 처리하는 함수 입니다.

4. 설정된 PC의 PING 상태를 Task 를 시작 하는 Async 함수와 처리 결과를 저장하는 PingAddress 함수 입니다.

5. Ping 을 실제로 처리 하는 함수 입니다.

5. WOL 의 매직패킷 처리 함수 입니다.


프로그램 소스가 필요하시면 댓글 남겨 주세요.

[그 외 WOL 툴]

  1. 무료툴
    : Windows 응용 프로그램 형태라 이에 따른 단점(클라이언트 설치를 한다던지, 모바일 기계에서
    볼수 없는 )이 존재 합니다.

  2. TeamViewr 사용
    : 로그인 해야 되는 단점이 존재

  3. iptime 관리자 페이지 이용
    : 웹형태로 다양한 기기에서 제어 가능

이상 fsl-dev stroy 의 WOL 편을 마치겠습니다.