메뉴 건너뛰기

본문시작

공유기에서 WOL(Wake On Lan) 기능으로 컴퓨터를 킬 수 있습니다.

해당 기능을 이용해서 바깥에서도 컴퓨터를 킬 수 있어 원격제어를 할 때는 거의 필수적인 기능이라 여겨지고 있습니다.

다만 공유기에서 지원하지 않거나, 공유기 Web UI가 스마트폰에서 사용하기에는 너무 불편한 경우가 많은데요.

다음과 같은 방법으로 단순히 특정 php 페이지에 접근하는 것 만으로 WOL 패킷을 보낼 수 있게 해봅시다.

 

 

WOL을 하기 위해서는 2가지 방법이 있습니다. 

 - 따로 프로그램을 설치하지 않고 php단에서 처리를 한다.

 - wakeonlan 프로그램을 설치하여 php단에서 shell excute한다.

 

(솔직히 2번째 방법이 더 쉽습니다..)

 

우선 라즈베리파이에 LAMP (Linux Apache MySQL PHP5) 혹은 비슷한 서비스가 설치되어 있고, 

ddns설정 및 포트포워드 설정이 되어있어 밖에서 접근이 가능하다고 가정하겠습니다.

 

첫번째 방법인, 따로 프로그램을 설치하지 않고 php단에서 처리하는 방법을 설명하겠습니다.

 

 


 

 

1. 라즈베리파이에 웹서버가 정상적으로 돌아가는지 확인한다. (보통 설치가 되어있고 아무것도 건드리지 않았다면 It works!라고 뜨겠죠)

 

2. 명령을 실행할 php를 www 폴더에 하나 만든다. (default : /var/www/)

 

sudo vi wol_exec.php

 

 

3. 해당 스크립트를 복붙한다. 

 

<?php
 echo wol("255.255.255.255", "전원을 킬 컴퓨터의 MAC주소");
function wol($broadcast, $mac){
    $mac_array = split(':', $mac);
    $hwaddr = '';
    foreach($mac_array AS $octet) {
        $hwaddr .= chr(hexdec($octet));
    }
    // Create Magic Packet
    $packet = '';
    for ($i = 1; $i <= 6; $i++) {
        $packet .= chr(255);
    }
    for ($i = 1; $i <= 16; $i++) {
        $packet .= $hwaddr;
    }
    $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
    if ($sock) {
        $options = socket_set_option($sock, 1, 6, true);
        if ($options >=0) {    
            $e = socket_sendto($sock, $packet, strlen($packet), 0, $broadcast, 7);
            socket_close($sock);
        }    
    }
} 
?>

(소스는 여기서 가져왔습니다 - http://stackoverflow.com/questions/6055293/wake-on-lan-script-that-works)

 

4. 전원을 킬 컴퓨터의 MAC주소를 확인하여(ipconfig -all) 해당 MAC주소를 위 스크립트에 넣습니다. 

   - AA:BB:CC:DD:EE:FF 이런식으로 넣으시면 됩니다.

 

5.  해당 php에 접근해봅니다. (http://라즈베리파이주소/wol_exec.php)

 

6. 컴퓨터가 켜집니다. (당연히 해당 컴퓨터가 켜져있으면 아무 일도 일어나지 않습니다...)

 

 


 

그럼 두번째 방법인 프로그램을 깔아 php에서 직접 실행해 봅시다.

 

1. 라즈베리 파이에 접근하여, wakeonlan 프로그램을 설치한다.

 

sudo apt-get install wakeonlan

 

 

2. 명령을 실행할 php를 www 폴더에 하나 만든다. (default : /var/www/)

 

sudo vi wol_exec.php

 

3. 해당 스크립트를 복붙한다. 

 

<?php
$run = shell_exec("wakeonlan 전원을 킬 컴퓨터의 맥 주소");
echo $run;
?>

 

(이 아래는 1번과 동일합니다)

 

4. 전원을 킬 컴퓨터의 MAC주소를 확인하여(ipconfig -all) 해당 MAC주소를 위 스크립트에 넣습니다. 

   - AA:BB:CC:DD:EE:FF 이런식으로 넣으시면 됩니다.

 

5.  해당 php에 접근해봅니다. (http://라즈베리파이주소/wol_exec.php)

 

6. 컴퓨터가 켜집니다. (당연히 해당 컴퓨터가 켜져있으면 아무 일도 일어나지 않습니다...)

 

 


 

Screenshot_2015-05-12-03-24-55.png

 

이런 식으로 스마트폰에서 해당 주소를 홈화면에 저장하면, 바로 홈화면에서 버튼을 누르는 것 만으로 컴퓨터가 켜지겠죠.

매우 편합니다. 개이득. 혹시 모르니 인증절차도 추가해두면 조금 낫겠지요

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
공지 새 글 / 새 댓글 트위터 알림에 관하여 [2] chisaka 2015.11.15 855
공지 저지먼트 홈페이지 회원등급 + 게시판 권한 정리. [6] chisaka 2015.05.09 564
공지 judgement.ml 팀 도메인 메일 발급 안내 [1] chisaka 2015.04.30 1928
193 [SKYRIM] 모드정렬 매니저 LOOT file 로토P 2015.11.27 4921
192 4차 MT 설문조사 종합 [5] file chisaka 2015.04.24 4910
191 [스카이림] 제가쓰는 모드들입니다 [3] file 개새 2015.06.25 2187
» [팁] 라즈베리파이로 WOL 패킷 보내기. file chisaka 2015.05.11 1797
189 도대체 왜 [4] 아르파 2014.09.14 1163
188 절대절망소녀 클리어 후기 & 총평(네타바레 없음) [6] file 마게 2015.12.21 1152
187 밋쨩최고 [1] 개새 2014.10.04 1057
186 리얼 우울하다 [5] Saten.R 2014.09.15 1047
185 스카이림 풀팩 75% / 디스아너드 GOTY 66% [7] file 로토P 2015.11.21 980
184 가끔 들어와서 글 하나 쓰기 캠페인 [2] file chisaka 2016.12.06 887
183 ⓥ 리플렉비트 ⓥ〓〓▣▣ 개망겜 ▣▣〓〓ⓥ p.eagate.573.jp [3] 광팔이 2014.08.05 855
182 최고다! 요사코이부! [1] 마게 2014.10.04 842
181 솔직히 이나바 히메코 개쩔지않습니까 [2] chisaka 2014.10.05 808
180 이제 여름도 끝났네용 [2] Conc.s 2014.09.21 785
179 요즘 슈타인즈게이트 라노벨 읽고있음 [4] 리듬베어 2014.11.01 773
178 3년차 예비군 끝! [4] Saten.R 2014.07.11 761
177 날씨가 추워졌네요 [1] Saten.R 2014.10.05 755
176 내일부터 잠시못들어올듯ㅋㅋ [4] 리듬베어 2014.06.30 708