Est-il possible d'implémenter le paquet magique wake-on-lan dans bash? J'utilise une ancienne BusyBox personnalisée et je n'en ai pas ether-wake
. Est-il possible de le remplacer par une autre commande shell, comme:
wakeonlan 11:22:33:44:55:66
busybox
wake-on-lan
michelemarcon
la source
la source
python
voir code.activestate.com/recipes/358449-wake-on-lan et mettezalias
-le dans votre.bashrc
Réponses:
Vous avez besoin de quelque chose capable d'envoyer un paquet Ethernet qui sera vu par l'appareil que vous souhaitez réveiller.
La
ether-wake
commande dans BusyBox est exactement ce que vous recherchez. Si votre BusyBox ne l'a pas, pensez à recompiler BusyBox pour l'inclure.Si vous avez un netcat suffisamment «gonflé» (BusyBox peut avoir l'une des deux
nc
implémentations, dont une gère uniquement TCP), vous pouvez envoyer un paquet UDP conçu manuellement à l'adresse de diffusion du segment de réseau auquel l'appareil est connecté.Un autre utilitaire BusyBox que vous pourriez abuser en envoyant ce paquet est
syslogd
.Si le MAC contient un octet nul, vous ne pourrez pas créer le paquet si facilement. Choisissez un octet qui n'est pas
\xff
et qui n'est pas dans le MAC, disons\x42
(B
), et dirigez-letr
.Si vous avez vraiment bash (ce qui est extrêmement inhabituel sur les appareils avec BusyBox - êtes-vous sûr que vous avez vraiment bash, et pas un autre shell fourni par BusyBox?), Il peut envoyer des paquets UDP en redirigeant vers
/dev/udp/$hostname/$port
.la source
/dev/udp
est reconnu par bash et n'existe pas vraiment dans le système de fichiers, alors essayez.Je pense que vous pouvez utiliser
syslogd
sans-l
interrupteur, tant qu'il prend en charge-R
.J'ai une
syslogd
boîte occupée avec un montant-R
, nonnc
nibash
et je suis toujours coincé.la source
J'ai un serveur ssh fonctionnant sur l'ancien rêve HTC. Ma version de busybox ne comprenait pas non plus d'éther-wake et je ne suis pas assez qualifié pour compiler ma propre busybox. Heureusement, j'ai réussi à réveiller mon PC en utilisant:
Notez que l'IP de diffusion est différente sur mon réseau.
J'ai créé le fichier (mac2.txt) contenant le paquet magique sur mon PC et l'ai poussé vers le serveur via SFTP. Parce que mon mac a zéro octet, je dois utiliser tr pour remplacer tous les x42 octets par 00. Cela a fonctionné comme un charme.
la source