def wake_up(self, mac): import socket,sys # TODO autodetect DEST = "192.168.0.255" # http://gsd.di.uminho.pt/jpo/software/wakeonlan/mini-howto/wol-mini-howto-2.html#ss2.4 magic_packet = [255 for i in xrange(1,8)] mac_hex = [] for i in mac.split(':'): mac_hex.append(int(i, 16)) for i in xrange(0, 16): magic_packet.extend(mac_hex) magic_packet = ''.join([chr(x) for x in magic_packet]) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, True) s.sendto(magic_packet, (DEST, 15911))