Je suis relativement nouveau sur Python et je ne comprends pas pourquoi le même script ne s'exécute pas sur mon NAS RS1221+ mais s'exécute sur le QNAP ts-219p ii sans problème. Il s'agit d'un script WoL conçu pour ouvrir un PC spécifique via une page HTML. Vous appuyez sur une image PNG, qui appelle ensuite un script php, qui à son tour appelle ledit script Python.
Je viens de copier les scripts php et python d'un collègue. Il fonctionne avec le système NAS QNAP ts-219p, mais pas avec le nouveau RS1221+. Les packages suivants sont installés sur le nouveau système : Python 3.9, Node.js v 18 et php 8.0.
Dans Web Station sur RS1221+, Python est activé et apparaît en vert. Le module "wakeonlan" version 3.0.0 est également installé dans la section "Edition".
Il s'agit du script php qui appelle le script python (où x est un espace réservé et modifié pour Mac pour le PC que je souhaite ouvrir). Mon adresse réseau est 192.168.0.1 /23 :
<?php system ( "python wake.py 192.168.1.255 XX:XX:XX:XX:XX:XX"); header ("Location:index.html"); ?>
Voici mon script python (wake.py) pour WoL qui est appelé et devrait s'exécuter sur le serveur :
import socket import sys if len(sys.argv) < 3: print("Usage: wakeonlan.py <ADR> <MAC> (example: 192.168.1.255 00:11:22:33:44:55)") sys.exit(1) mac = sys.argv[2] data = ''.join(['FF' * 6, mac.replace(':', '') * 16]) sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) sock.sendto(data.decode("hex"), (sys.argv[1], 9))
J'ai essayé de changer le script Python pour utiliser un autre module :
from wakeonlan import send_magic_packet send_magic_packet('XX-XX-XX-XX-XX-XX')
Mais ça ne marche pas non plus. Comme je l'ai dit, je ne suis pas un gourou du python, c'est pourquoi j'apprécierais tout conseil.
Pour tous ceux qui reviennent sur cette question :
L'utilisation de ce https://pypi.org/project/wakeonlan/package a résolu tous les problèmes que j'avais avec Python.