Wake on LAN GUI

  • Sodele ich bins mal wieder!

    Mir is grad mal wieder eine neue Idee zu nem Tool aus dem Hirn gesprudelt! Und zwar möchte ich gerne eine GUI erstellen in der man ene beliebige MAC-Adresse eingibt und an die dann ein WOL Signal gesendet wird - die verwendeten Pakete hierbei sind sogenannte Magic Pakete....

    so nun meine Frage! kann ich mit autoit solche pakete erzeugen oder gibts da vielleicht ne dll die ich benutzen kann? hab bis jetzt durch suchen nich viel erreicht!

    liebe grüße oli

  • ok dankeschön hab das per suche ned gefunden! ... oje funzt aber trotzdem ned... aber liegt wohl an meinen cisco switches hier!

    naja da hat wahrscheinlich keiner nen plan warum das ned geht oder?

    EDIT: es geht! es lag an meinen dell pcs hier! die muss man einmal komplett stromlos machen, damit es geht!

    werde nachher meine gui posten!

    Einmal editiert, zuletzt von oliverh (29. Juni 2007 um 13:32)

  • sooo hab noch kurz ne frage dann steht das teil ;)

    will aus meiner ip adresse automatisch die broadcast-adresse des netzes rausextrahieren! hat da jemand von euch schon irgendwie sowas?

  • was is das?^^

    die ersten paar teile?

    zb

    192.168.2.117 bei meiner netz ip, wär da 2.117 der broadcast?^^
    pder wäre

    192.168.2.255 das richtige?


    mal goooooogeln

    2 Mal editiert, zuletzt von huggy (29. Juni 2007 um 14:26)

  • Broadcast Adr. is immer der "theoretisch" LETZTE Host eines Netzes ... also in deinem Fall:

    Netzadr.: 192.168.2.0
    Broadcast: 192.168.2.255
    da Klasse C: 255.255.255.0


    da gibts doch bestimmt schon ne UDF dafür oder??? will das rad nich schon wieder neu erfinden müssen :(

  • Spoiler anzeigen
    [autoit]


    Func _GetBroadcast($ip)

    [/autoit] [autoit][/autoit] [autoit]

    $broadcast = StringSplit($ip, ".")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $last = $broadcast[0]

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $broadcast = $broadcast[1] & "." & $broadcast[2] & "." & $broadcast[3] & ".255"

    [/autoit] [autoit][/autoit] [autoit]

    ;MsgBox(0, "", $broadcast)

    [/autoit] [autoit][/autoit] [autoit]

    return $broadcast

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $ip = "192.168.2.1"

    [/autoit] [autoit][/autoit] [autoit]

    _GetBroadcast($ip)

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    habs dir schnell gemacht, is doch keine Arbeit :D

    Einmal editiert, zuletzt von huggy (29. Juni 2007 um 14:38)

  • jaaaa du oller schummler *mega lach*

    das soll bei jedem netz funktionieren nicht nur bei einem klasse c netz ;)

    so hatte ich das auch schon... in meiner firma haben wir 10 unterschiedliche subnetzbereiche in denen das bei alle funzen soll :)

    im prinzip muss hierfür ein algorithmus erstellt werden - aber wie gesagt denk ich das es sowas schon gibt aber find das nirgensssssssssssssss *ahhh*

    • Offizieller Beitrag

    Hallo,

    schwer ist es nicht aber ein wenig rechnen muss man schon!

    [autoit]

    GetBroadcast("192.168.2.25", "255.255.255.0")

    [/autoit][autoit][/autoit][autoit]

    Func GetBroadcast($szIP, $szSN)

    [/autoit][autoit][/autoit][autoit]

    Local $aszIP = StringSplit($szIP, ".")
    Local $aszSN = StringSplit($szSN, ".")
    Local $aszBC[5] = [4, 0, 0, 0, 0]

    [/autoit][autoit][/autoit][autoit]

    For $cIndex = 1 To 4
    $aszBC[$cIndex] = BitOR($aszIP[$cIndex],BitXOR($aszSN[$cIndex], 255))
    Next

    [/autoit][autoit][/autoit][autoit]

    return $aszBC[1] & "." & $aszBC[2] & "." & $aszBC[3] & "." & $aszBC[4]
    EndFunc ;==>GetBroadCast

    [/autoit]
  • ich zitiere oliverh:

    jaaaa du oller schummler *mega lach*

    :P


    sieht kompliziert aus die funktion^^

  • danke bernd670...

    wie kann ich jetzt noch automatisch die SM bei meinem rechner auslesen lassen dait ich die funktion aufrufen kann?

    IP is ja klar mit

    [autoit]

    @IPAddress1

    [/autoit]

    aber subnetzmaske???

  • doofe idee:


    Ipconfig /all >> C:\log.txt


    dann kannst dus ja einlesen.


    Vll gehts auch profesioneller, mal suchen =D

    • Offizieller Beitrag

    Die einzige Möglichkeit ist über WMI:

    [autoit]

    MsgBox(0, "", GetBroadcast("192.168.178.21", GetSubnetmask("192.168.178.21")))

    [/autoit][autoit][/autoit][autoit]

    Func GetBroadcast($szIP, $szSN)

    [/autoit][autoit][/autoit][autoit]

    Local $aszIP = StringSplit($szIP, ".")
    Local $aszSN = StringSplit($szSN, ".")
    Local $aszBC[5] = [4, 0, 0, 0, 0]

    [/autoit][autoit][/autoit][autoit]

    For $cIndex = 1 To 4
    $aszBC[$cIndex] = BitOR($aszIP[$cIndex], BitXOR($aszSN[$cIndex], 255))
    Next

    [/autoit][autoit][/autoit][autoit]

    Return $aszBC[1] & "." & $aszBC[2] & "." & $aszBC[3] & "." & $aszBC[4]
    EndFunc ;==>GetBroadcast

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func GetSubnetmask($szIP)
    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $strComputer = $szIP
    $Output = ""
    $Output &= "Windows IP-Konfiguration" & @CRLF & @CRLF

    [/autoit][autoit][/autoit][autoit]

    $OEvent = ObjEvent("AutoIt.Error", "nothing") ; Bei Fehler weitermachen, entspricht "On Error Resume Next"

    [/autoit][autoit][/autoit][autoit]

    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True", "WQL", _
    $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($colItems) Then
    For $objItem In $colItems
    If $objItem.IPAddress (0) = $szIP Then Return $objItem.IPSubnet (0)
    Next
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Return ""
    EndFunc ;==>GetSubnetmask

    [/autoit]
  • Kannst du irgendwas nicht? 8|

    • Offizieller Beitrag

    Wenn ich was nicht kann lern ich's! ;)