Skip to content

Instantly share code, notes, and snippets.

@kwccoin
Forked from rschuetzler/Python Wake on LAN
Created April 19, 2020 08:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kwccoin/350ac7d4f367a5564c02e4daf384285d to your computer and use it in GitHub Desktop.
Save kwccoin/350ac7d4f367a5564c02e4daf384285d to your computer and use it in GitHub Desktop.
#!/usr/bin/python
# A Wake on LAN program that allows you to send magic packets over the Internet
import socket, struct
class Waker():
def makeMagicPacket(self, macAddress):
# Take the entered MAC address and format it to be sent via socket
splitMac = str.split(macAddress,':')
# Pack together the sections of the MAC address as binary hex
hexMac = struct.pack('BBBBBB', int(splitMac[0], 16),
int(splitMac[1], 16),
int(splitMac[2], 16),
int(splitMac[3], 16),
int(splitMac[4], 16),
int(splitMac[5], 16))
self.packet = '\xff' * 6 + macAddress * 16 #create the magic packet from MAC address
def sendPacket(self, packet, destIP, destPort = 7):
# Create the socket connection and send the packet
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto(packet,(destIP,destPort))
s.close()
def wake(self, macAddress, destIP, destPort=7):
self.makeMagicPacket(macAddress)
self.sendPacket(self.packet, destIP, destPort)
print 'Packet successfully sent to', macAddress
if __name__ == '__main__':
#This is all the information that needs to be changed to make this work for you
mac = '00:11:22:33:44:55'
ip = 'example.com' #The IP address where the packet should be sent
port = 7 #The port the packet will be sent on
wol = Waker()
wol.makeMagicPacket(mac)
wol.sendPacket(wol.packet, ip, port)
print 'Packet successfully sent to', mac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment