- Mitglied seit
- 31 Aug 2022
- Beiträge
- 1,083
- Punkte für Reaktionen
- 252
- Punkte
- 83
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.
Update: Obsolet, auto_etherwake ist bei der 5590 repariert worden.
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: