我對 Python 比較陌生,我不明白為什麼相同的腳本不能在我的 RS1221 NAS 上運行,但在 QNAP ts-219p ii 上運行卻沒有問題。它是一個 WoL 腳本,旨在透過 HTML 頁面開啟特定的 PC。您按下 PNG 映像,然後該映像呼叫一個 php 腳本,該腳本又呼叫所述 Python 腳本。
我只是從同事那裡複製了 php 和 python 腳本。它適用於 QNAP ts-219p NAS 系統,但不適用於較新的 RS1221 。新系統上已安裝以下軟體包:Python 3.9、Node.js v 18 和 php 8.0。
在 RS1221 上的 Web Station 中,Python 已啟動並顯示綠色。模組「wakeonlan」版本3.0.0也安裝在「編輯」部分。
這是呼叫 python 腳本的 php 腳本(其中 x 是佔位符,並針對我想要開啟的 PC 的 Mac 進行了更改)。我的網路位址是 192.168.0.1 /23:
<?php system ( "python wake.py 192.168.1.255 XX:XX:XX:XX:XX:XX"); header ("Location:index.html"); ?>
這是我用於 WoL 的 python 腳本 (wake.py),它被呼叫並且應該在伺服器上運行:
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))
我已經嘗試更改 Python 腳本以使用另一個模組:
from wakeonlan import send_magic_packet send_magic_packet('XX-XX-XX-XX-XX-XX')
但這也不起作用。正如我所說,我不是 python 大師,這就是為什麼我會感謝所有建議。
P粉9550636622024-02-18 09:14:58
對於任何回到這個問題的人:
使用這個https://pypi.org/project/wakeonlan/套件解決了Python問題我遇到的所有問題。