初心者も簡単ブログにコピペだけ!1クリック高単価7〜42円。登録無料最短1分でスタート。

簡単WakeOnLanアプリを自作しよう。

WakeOnLanとは

同じセグメント内のPCなどをネットワーク経由で起動する機能です。
マジックパケットという特殊なパケットを送信することで同一セグメント内の端末に起動の命令を送ります。
セグメント越えてWOLを送るにはスイッチやVLANなどルーター越えの設定が別途必要です。

マジックパケットの内容は、最初にFFを6回、対象のMACアドレス16回、いずれも16進数です。

WakeOnLanの準備

1:起動させたいPCのBIOSでWakeOnLanをEnableに設定。
2:起動させたいPCのデバイスマネージャのネットワークアダプタのプロパティを開き
  WakeOnLan関連の項目をすべてEnableに設定。(MagicPacketなど)
3:下記のプログラムをVisual Studio Expressなどで作成しコンパイルします。
VisualStudioExpressは無料でマイクロソフトからダウンロードできます。

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim strIP As String = "IP ADDRESS"
        Dim strMAC As String = "MAC ADDRESS"

        Dim intCounter As Integer = 0
        Dim sendBytes(0 To 101) As Byte

        For I = 1 To 6
            sendBytes(intCounter) = &HFF
            intCounter += 1
        Next

        For I = 1 To 16

            For J = 0 To 5
                sendBytes(intCounter) = Byte.Parse(strMAC.Substring(J * 3, 2), Globalization.NumberStyles.HexNumber)
                intCounter += 1
            Next
        Next

        Dim RemotePort As Integer = 1000

        Dim BCIP As System.Net.IPAddress
        Dim EP As System.Net.IPEndPoint
        Dim UDP As New System.Net.Sockets.UdpClient

        BCIP = System.Net.IPAddress.Parse("255.255.255.255")
        EP = New System.Net.IPEndPoint(BCIP, RemotePort)
        UDP.Send(sendBytes, sendBytes.Length, EP)

        BCIP = System.Net.IPAddress.Parse(strIP)
        EP = New System.Net.IPEndPoint(BCIP, RemotePort)
        UDP.Send(sendBytes, sendBytes.Length, EP)

        UDP.Close()
        MsgBox("送信しました。")
    End Sub
End Class

ダイレクト特集ページ用バナー(ダウンロード版)

初心者も簡単ブログにコピペだけ!1クリック高単価7〜42円。登録無料最短1分でスタート。