Saya agak baru menggunakan Python dan saya tidak faham mengapa skrip yang sama tidak berjalan pada RS1221+ NAS saya tetapi berjalan pada QNAP ts-219p ii tanpa masalah. Ia adalah skrip WoL yang direka untuk membuka PC tertentu melalui halaman HTML. Anda menekan imej PNG, yang kemudiannya memanggil skrip php, yang seterusnya memanggil skrip Python tersebut.
Saya baru sahaja menyalin skrip php dan python daripada rakan sekerja. Ia berfungsi dengan sistem NAS QNAP ts-219p, tetapi bukan RS1221+ yang lebih baharu. Pakej berikut dipasang pada sistem baharu: Python 3.9, Node.js v 18 dan php 8.0.
Dalam Stesen Web pada RS1221+, Python diaktifkan dan kelihatan hijau. Modul "wakeonlan" versi 3.0.0 juga dipasang di bahagian "Pengeditan".
Ini adalah skrip php yang memanggil skrip python (di mana x adalah pemegang tempat dan ditukar untuk Mac untuk PC yang saya ingin buka). Alamat rangkaian saya ialah 192.168.0.1 /23:
<?php system ( "python wake.py 192.168.1.255 XX:XX:XX:XX:XX:XX"); header ("Location:index.html"); ?>
Ini skrip python saya (wake.py) untuk WoL yang dipanggil dan harus dijalankan pada pelayan:
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))
Saya telah cuba menukar skrip Python untuk menggunakan modul lain:
from wakeonlan import send_magic_packet send_magic_packet('XX-XX-XX-XX-XX-XX')
Tetapi itu juga tidak berkesan. Seperti yang saya katakan, saya bukan guru ular sawa, itulah sebabnya saya menghargai sebarang nasihat.
Untuk sesiapa yang kembali kepada soalan ini:
Menggunakan https://pypi.org/project/wakeonlan/pakej ini menyelesaikan semua masalah yang saya hadapi dengan Python.