This commit is contained in:
suti7yk5032 2024-05-12 22:03:06 +09:00
commit f2a280356d
2 changed files with 133 additions and 0 deletions

67
wakeup7 Normal file
View file

@ -0,0 +1,67 @@
#/usr/sbin/python
import sys
import os
import socket
import json
listfile = "wakeup_list.json"
listfile_path = "./" + listfile
#ファイルがない時の動作
if not os.path.isfile(listfile_path):
dummylist = {}
with open(listfile, "w") as list_write:
json.dump(dummylist, list_write, indent=4)
with open(listfile, "r") as list_read:
pclist = json.load(list_read)
if len(sys.argv) < 2:
print("\nwakeup7 - 0.1P\n引数の説明\n\n-a : リストにパソコンを追加します。(例 : wakeup7 -a PC名 MACアドレス)\n\n現在リストに登録されているPCは以下の通りです。\n" + str(pclist) + "\n")
elif sys.argv[1] == "-a":
if len(sys.argv[3]) == 17:
pclist[sys.argv[2]] = sys.argv[3]
with open(listfile, "w") as list_write:
json.dump(pclist, list_write, indent=4)
print(sys.argv[2] + " はMACアドレス " + sys.argv[3] + " として登録されました。")
else:
print("登録できません。構文が間違っている可能性があります。\n登録時の構文 : wakeup7 -a PC名 MACアドレス")
exit()
else:
ip = "255.255.255.255"
port = 9
if sys.argv[1] in pclist:
mac = pclist[sys.argv[1]]
remac = mac.replace(":", "").replace("-", "")
magic_packet = b"\xFF" * 6
for i in range(16):
magic_packet += bytes.fromhex(remac)
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto(magic_packet, (ip, port))
print(sys.argv[1] + " に起動を要求しました。")
else:
mac = sys.argv[1]
remac = mac.replace(":", "").replace("-", "")
if len(remac) != 12:
print("\n有効なMACアドレスではない、またはリストに登録されていません。\n\n現在リストに登録されているPCは以下の通りです。\n" + str(pclist) + "\n")
exit()
magic_packet = b"\xFF" * 6
for i in range(16):
magic_packet += bytes.fromhex(remac)
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto(magic_packet, (ip, port))
print("MACアドレス " + sys.argv[1] + " に起動を要求しました。")

66
wakeup7.py Normal file
View file

@ -0,0 +1,66 @@
import sys
import os
import socket
import json
listfile = "wakeup_list.json"
listfile_path = "./" + listfile
#ファイルがない時の動作
if not os.path.isfile(listfile_path):
dummylist = {}
with open(listfile, "w") as list_write:
json.dump(dummylist, list_write, indent=4)
with open(listfile, "r") as list_read:
pclist = json.load(list_read)
if len(sys.argv) < 2:
print("\nwakeup7 - 0.1P\n引数の説明\n\n-a : リストにパソコンを追加します。(例 : wakeup7 -a PC名 MACアドレス)\n\n現在リストに登録されているPCは以下の通りです。\n" + str(pclist) + "\n")
elif sys.argv[1] == "-a":
if len(sys.argv[3]) == 17:
pclist[sys.argv[2]] = sys.argv[3]
with open(listfile, "w") as list_write:
json.dump(pclist, list_write, indent=4)
print(sys.argv[2] + " はMACアドレス " + sys.argv[3] + " として登録されました。")
else:
print("登録できません。構文が間違っている可能性があります。\n登録時の構文 : wakeup7 -a PC名 MACアドレス")
exit()
else:
ip = "255.255.255.255"
port = 9
if sys.argv[1] in pclist:
mac = pclist[sys.argv[1]]
remac = mac.replace(":", "").replace("-", "")
magic_packet = b"\xFF" * 6
for i in range(16):
magic_packet += bytes.fromhex(remac)
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto(magic_packet, (ip, port))
print(sys.argv[1] + " に起動を要求しました。")
else:
mac = sys.argv[1]
remac = mac.replace(":", "").replace("-", "")
if len(remac) != 12:
print("\n有効なMACアドレスではない、またはリストに登録されていません。\n\n現在リストに登録されているPCは以下の通りです。\n" + str(pclist) + "\n")
exit()
magic_packet = b"\xFF" * 6
for i in range(16):
magic_packet += bytes.fromhex(remac)
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto(magic_packet, (ip, port))
print("MACアドレス " + sys.argv[1] + " に起動を要求しました。")