Wake-ON-LAN Program?

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Mono.

    Wake-ON-LAN Program?

    Guten Tag,
    ich mache gerade ein Wake-ON-LAN Program. Hier mal der Quelltext:

    VB.NET-Quellcode

    1. Imports System.Net.Sockets
    2. Public Class Form1
    3. Public Sub WakeOnLAN(ByVal MACAddress As String)
    4. Dim Client As New UdpClient
    5. Dim Count As Integer = 0
    6. Dim ByteArray(1024) As Byte
    7. Dim Pos As Integer = 0
    8. MACAddress = TextBox2.Text
    9. Try
    10. Client.Connect(TextBox1.Text, 9)
    11. Client.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 0)
    12. For i As Integer = 0 To 5
    13. Count += 1
    14. ByteArray(Count) = &HFF
    15. Next
    16. For i As Integer = 0 To 15
    17. Pos = 0
    18. For n As Integer = 0 To 5
    19. Count += 1
    20. ByteArray(Count) = Byte.Parse(MACAddress.Substring(Pos, 2), Globalization.NumberStyles.HexNumber)
    21. Pos += 2
    22. Next
    23. Next
    24. Client.Send(ByteArray, 1024)
    25. Catch ex As Exception
    26. MessageBox.Show("Prüfen Sie ob Sie Port 9 UDP in ihrem Router richtig weitergeleitet haben." & vbNewLine & "Prüfen Sie ob Sie die richtige IP oder DynDNS Adresse eingegeben haben." & vbNewLine & "Prüfen Sie ob die Konfiguration am PC stimmt." & vbNewLine & "Prüfen Sie ob die Netzwerkkarte mit Strom versorgt ist." & vbNewLine & "Weiter Informationen unter http://stehpan.mestrona.net/wol")
    27. End Try
    28. End Sub
    29. End Class

    Soweit so gut. Doch nun möchte ich noch das wenn die Mac Adresse z.B. so eingetippt wird 00:00:00:00:00 diese : rausgenommen werden. Wenn dafür jetzt gerade niemand zeit hat egal. Irgendwie werd ich das schon hinbekommen. Das Hauptproblem ist: Es kommt auch wenn keine Verbindung zu stande kommt keine Fehlermeldung. Was habe ich falsch gemacht?

    Vielen Dank
    Zum ersten Problem: Die Doppelpunkte wegstreichen geht ganz einfach:

    VB.NET-Quellcode

    1. Dim Mac As String = "00:11:22:33:44:55:66"
    2. Label1.Text = Mac.Replace(":", "")


    Für das zweite habe ich gerade noch keiene zeit sry... Gucke Morgen mal drüber vllt. schaffe ich es auch noch heute Nacht ;) mal sehen wies mir passt.

    Kleine Anmerkung noch: Es macht in meinen Augen keinen Sinn die Macadresse der Funktion zu übergeben und dann nochmal mit dem Text aus TextBox2.Text zu füllen. Kannst vllt erklären warum das machst, wenns gewollt ist, damit ich es beim überprüfen richtig verstehe? ;)

    Schöne Weihnachten noch :)
    Dei IP offline ist ?
    Wie solln dei IP uffline sei ?

    Des kannsch mir nit vorstelle.. ?



    So wie du es hast, werden doch die Fehler abgefangen. Beschreib doch mal ein Szenario, bei dem ein Fehler auftritt, aber keine Fehlermeldung kommt.

    Gruss Mono
    Das ist meine Signatur und sie wird wunderbar sein!
    Es wird auch keine Fehlermeldung kommen.

    UDPclient ist verbindungslos, sprich Du kannst Pakete an jede x-beliebige Adresse senden, nur wirst du keine Antwort bekommen.

    Hab mir für sowas eine Sub in nem anderen Thread geschrieben zb.:

    VB.NET-Quellcode

    1. Dim TimeOut as Integer = 0
    2. Do While upd.Available = 0
    3. If TimeOut >= 20 Then Exit Do
    4. TimeOut += 1
    5. Thread.Sleep(500)
    6. Loop
    7. While udp.Available > 0
    8. Dim rec(udp.Available) as New Byte
    9. udp.Receive(rec)
    10. Dim str As String = Encoding.UTF8.GetString(rec)
    11. End While


    Sind jetzt aber nur Ausschnitte, aber vllt bringt dich das ja weiter