Wecken per Teamviewer, wenn auto_etherwake TCP-only ist

  • Ersteller Ersteller Deleted member 465500
  • Erstellt am Erstellt am
D

Deleted member 465500

Guest
Meine 5590 reagiert aktuell bei auto_etherwake anders als meine 7590 nicht mehr auf UDP-Pakete vom Teamviewer.
Als notorisch fauler Sack will ich aber weiterhin den Teamviewer auch zum Wecken benutzen und haben mal unter Nutzung eines laufenden Servers "UDP" und einer guten Quelle etwas PowerShell zusammengepappt.

Aus dem UDP-Paket vom Teamviewer mache ich eine TCP-Verbindungsanforderung für meinen Server "TCP" hinter meiner 5590.
Neben den beiden Freigaben muss man nur im Teamviewer(Host) des zu weckenden Servers "TCP" DDNS und Port vom Server "UDP" einstellen.
Noch ist da keinerlei Sicherheit eingebaut, so dass auch jederzeit zufällig geweckt werden kann.

Code:
Code:
# receive-udp
#
# Start a UDP-Listener on a given Ip:Port and wait für packets

param (
    [int]$udplistenport = 50000,
    [boolean]$debug = $false,
    [string]$computerName = "subdomain.meinddns.de",
    [int]$tcpwakeport = 50000
)

set-psdebug -strict
$error.clear()

try {
    Write-host "Receive-UDP:Start"
    $buffer  = [System.Byte[]]::new(20)
    $udpClient = New-Object system.Net.Sockets.Udpclient($udplistenport)
    $RemoteIpEndPoint = New-Object System.Net.IPEndPoint([system.net.IPAddress]::Parse("0.0.0.0")  , 0);
    Write-host "Receive-UDP:Wait für Data on Port: $udplistenport"
    while ($true) {
        $data= $udpclient.receive([ref]$RemoteIpEndPoint)  # wait für data arriving from any ip. Alternativ kann man eine Liste der erlaubten IPs angeben
        # Achtung: UDPClient puffert, d.h. wenn weiter Daten  kommen, werden diese gequeue
        if ($debug) {
            write-host "Received packet from IP " $RemoteIpEndPoint.address ":" $RemoteIpEndPoint.Port
            write-host "Content" ([string]::join("",([System.Text.Encoding]::ASCII.GetChars($buffer))))
        }
    
        # send structured Data to pipeline
        Test-NetConnection -computername $computerName -port $tcpwakeport
        New-Object PSObject -Property @{
            RemoteIP = $RemoteIpEndPoint.address
            RemotePort = $RemoteIpEndPoint.Port
            bytes = $buffer
#            text = ([string]::join("",([System.Text.Encoding]::ASCII.GetChars($buffer))))
            timestamp = (get-date -Format "yyyy/MM/dd HH:mm:ss.fff")
    
        }
    }
}
catch {
    write-host "Receive-UDP:Error occured $error"
}

finally {
    write-host "Receive-UDP:Closing"
    $udpclient.close()
    Write-host "Receive-UDP:End"
}

Update: Obsolet, auto_etherwake ist bei der 5590 repariert worden.
 
Zuletzt bearbeitet von einem Moderator:
Kostenlos!

Statistik des Forums

Themen
248,896
Beiträge
2,304,386
Mitglieder
378,588
Neuestes Mitglied
k3rp