Das Gegenteil von dem, worüber Sie fragen, ist sehr verbreitet - Wake On LAN (WOL). Um Ihre Frage zu beantworten, ist es viel einfacher, das zuerst zu erklären.
WOL
Für WOL müssen diese Funktionen vorhanden sein
Das Netzwerk im ausgeschalteten PC muss über eine integrierte Treiberunterstützung verfügen.
Das Motherboard (BIOS) muss einen Energiesparmodus unterstützen, der der NIC immer noch etwas Strom liefert, wenn der PC sonst ausgeschaltet ist.
Eine zweite PC- / Netzwerk-Appliance muss sich im LAN befinden (für dieses vereinfachte Beispiel - Sie können dies über das Internet tun) und über Software verfügen, um ein spezielles Paket zu generieren.
Wenn der PC ausgeschaltet ist, erstellt der PC, der den Befehl zum Einschalten erteilt, ein magisches Paket:
Das magische Paket ist ein Broadcast-Frame, der irgendwo innerhalb seiner Nutzdaten 6 Bytes aller 255 (FF FF FF FF FF in hexadezimal) enthält, gefolgt von sechzehn Wiederholungen der 48-Bit-MAC-Adresse des Zielcomputers für insgesamt 102 Bytes.
Dieses Paket wird an alle im LAN gesendet. Jede Netzwerkkarte überprüft die MAC-Adresse darin. Wenn es eine Übereinstimmung gibt, weist das Motherboard das System an.
Mit einem UDP-Paket
Für deine Frage ist es viel einfacher. Der PC ist in Betrieb und MB / NIC müssen sich nicht über ein spezielles Paket informieren. Ein einfaches Programm oder ein Skript, das ein Programm wie nc verwendet, kann so eingerichtet werden, dass ein UDP-Paket an einem bestimmten Port mit vordefiniertem Inhalt überwacht wird.
Da UDP verbindungslos ist, ist kein Overhead (Transaktionspakete) beteiligt. Ein einzelnes Paket ist ausreichend. Was nach dem Erhalt passiert, kann alles sein - Herunterfahren, ein anderes Programm starten, den Inhalt der Festplatte löschen ...
Sie können dieses Paket von überall aus senden, vorausgesetzt, das richtige Routing ist vorhanden - es ist nur ein normaler Punkt, an dem eine UDP-Nachricht angezeigt wird.
Sie können auch und in Wirklichkeit MUSS Sicherheitsfunktionen in den Paketinhalt einarbeiten, um das Paket zu authentifizieren.
Es wäre eigentlich ein ordentliches Intro-Projekt zur Socket-Programmierung.
TCP-Lösung
Die Verwendung eines TCP-Pakets erfordert Overhead und regelmäßige Nachrichten, um den Socket am Leben zu erhalten, sodass dies nicht Ihren Anforderungen entspricht.
Sie können jedoch eine Firewall-Regel auf dem PC einrichten, indem Sie iptables verwenden, um das TCP-Paket zu identifizieren, und es in eine Form umwandeln, die als Auslöser zum Auslösen eines Programms dient, um die gewünschte Aktivität auszuführen. Ein bisschen kludgey aber völlig machbar.