Jag skulle vilja starta min stationära dator med hjälp att ett pythonskript från min XBOX för att se på filmer via smb. Har testat två olika skript men inte fått till det. Jag vet inte vart jag ska fylla i MAC-adressen. Jag använder en router, om det har någon betydelse.

Datorn är förberedd för att kunna starta upp med hjälp av WOL. Har provat det med AMD Magic Packet från min laptop och det funkar utmärkt.

Här är det första skriptet: wolpython.py

# Wake-On-LAN
#
# Copyright (C) 2002 by Micro Systems Marc Balmer
# Written by Marc Balmer, marc@msys.ch, http://www.msys.ch/
# This code is free software under the GPL

import struct, socket

def WakeOnLan(ethernet_address):

# Construct a six-byte hardware address

addr_byte = ethernet_address.split(':')
hw_addr = struct.pack('BBBBBB', int(addr_byte[0], 16),
int(addr_byte[1], 16),
int(addr_byte[2], 16),
int(addr_byte[3], 16),
int(addr_byte[4], 16),
int(addr_byte[5], 16))

# Build the Wake-On-LAN "Magic Packet"...

msg = '\xff' * 6 + hw_addr * 16

# ...and send it to the broadcast address using UDP

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto(msg, ('<broadcast>', 9))
s.close()

# Example use
WakeOnLan('0:3:93:81:68:b2')





Här är det andra skriptet: wol.py


#!/usr/bin/env python
# wol.py

import socket
import struct

def wake_on_lan(macaddress):
""" Switches on remote computers using WOL. """

# Check macaddress format and try to compensate.
if len(macaddress) == 12:
pass
elif len(macaddress) == 12 + 5:
sep = macaddress[2]
macaddress = macaddress.replace(sep, '')
else:
raise ValueError('Incorrect MAC address format')

# Pad the synchronization stream.
data = ''.join(['FFFFFFFFFFFF', macaddress * 20])
send_data = ''

# Split up the hex values and pack.
for i in range(0, len(data), 2):
send_data = ''.join([send_data,
struct.pack('B', int(data[i: i + 2], 16))])

# Broadcast it to the LAN.
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(send_data, ('<broadcast>', 7))


if __name__ == '__main__':00-0D-61-31-D8-DD
# Use macaddresses with any seperators.
wake_on_lan('0F:0FF:0F:BF:EF')
wake_on_lan('0F-0F-DF-0F-BF-EF')
# or without any seperators.
wake_on_lan('0F0FDF0FBFEF')