Feedback

WakeOnLan mittels MagicPacket

Sprache: VB

Diese Funktion weckt/startet einen Rechner im Netzwerk mittels Wake On LAN. Dabei wird die MagicPacket Methode angewendet. Alles was man brauch ist die MAC-Adresse der Netzwerkkarte von dem Rechner den man starten will. Der Rechner muss aber eine aktive AC Stromzufuhr haben, also ein Laptop mit der nicht am AC Netz angeschlossen ist kann nicht geweckt werden.
''' <summary>
''' Diese Funktion startet einen Rechner über das Netztwerk mittels MagicPacket
''' </summary>
''' <param name="MACAddress">Die MAC Adresse des zu startenden Rechners bzw. dessen Netzwerkadapter</param>
Public Sub WakeOnLAN(ByVal MACAddress As String)
    Dim Client As New UdpClient
    Dim Count As Integer = 0
    Dim ByteArray(1024) As Byte
    Dim Pos As Integer = 0

    Client.Connect("255.255.255.255", 12287)
    Client.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 0)

    For i As Integer = 0 To 5
        Count += 1
        ByteArray(Count) = &HFF
    Next

    For i As Integer = 0 To 15
        Pos = 0
        For n As Integer = 0 To 5
            Count += 1
            ByteArray(Count) = Byte.Parse(MACAddress.Substring(Pos, 2), Globalization.NumberStyles.HexNumber)
            Pos += 2
        Next
    Next

    Client.Send(ByteArray, 1024)
End Sub
''' <summary>
''' Diese Funktion startet einen Rechner über das Netztwerk mittels MagicPacket
''' </summary>
''' <param name="MACAddress">Die MAC Adresse des zu startenden Rechners bzw. dessen Netzwerkadapter</param>
Public Sub WakeOnLAN(ByVal MACAddress As String)
    Dim Client As New UdpClient
    Dim Count As Integer = 0
    Dim ByteArray(1024) As Byte
    Dim Pos As Integer = 0

    Client.Connect("255.255.255.255", 12287)
    Client.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 0)

    For i As Integer = 0 To 5
        Count += 1
        ByteArray(Count) = &HFF
    Next

    For i As Integer = 0 To 15
        Pos = 0
        For n As Integer = 0 To 5
            Count += 1
            ByteArray(Count) = Byte.Parse(MACAddress.Substring(Pos, 2), Globalization.NumberStyles.HexNumber)
            Pos += 2
        Next
    Next

    Client.Send(ByteArray, 1024)
End Sub

2 Kommentare

  1. Vielleicht sollte erwähnt werden, dass der Namespace System.Net.Sockets importiert werden muss.
    Ansonst tolles toi 😉