[.Net] Classe Wake On Lan en Vb.Net
Afin de démarrer vosordinateurs via le réseau, vous pouvez utiliser le Wake On Lan (WOL).
Pour ceux qui ne connaissent pas le Wake On Lan, je vous invite à aller sur la page de Wikipedia.
Pour automatiser le démarrage de mes machines, j'ai donc codé une petit classe en Vb.Net (qui sera facile de convertir en C#):
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Globalization
Public Class WOL
'''
''' Fonction qui lance un WOL
'''
'''
'''
'''
Public Shared Sub WakeUp(ByVal MacAddress As String, Optional ByVal BroadCast As String = "255.255.255.255")
Dim udp As New UdpClient With {.EnableBroadcast = True}
Try
udp.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1)
Dim offset As Integer = 0
Dim buf(512) As Byte
'les 6 premiers bytes sont &HFF
For i As Integer = 0 To 5
buf(offset) = &HFF
offset += 1
Next
'on repete l'addresse MAC 16 fois
For i As Integer = 0 To 15
Dim n As Integer = 0
For j As Integer = 0 To 5
buf(offset) = Byte.Parse(MacAddress.Substring(n, 2), NumberStyles.HexNumber)
offset += 1
n += 2
Next
Next
'on envoie le wol
udp.Send(buf, 512, New IPEndPoint(IPAddress.Parse(BroadCast), &H1))
Catch ex As Exception
udp.Close()
Throw ex
End Try
End Sub
End Class
Et pour ceux qui souhaite, j'ai mis à disposition une archive contenant le projet Wake On Lan. Il est disponible ici.