User Tools

Site Tools


burim:python:wol
#!/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
burim/python/wol.txt · Last modified: 2019/03/22 10:29 by burim

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki