mac = ['A1:B2:C3:D4:E5:F6', 'F6:E5:D4:C3:B2:A1'] #give here the mac address
ip = ['123.456.7.8', '123.456.78.9'] #give here the ip address

import socket
import struct

def makeMagicPacket(macAddress):
    splitMac = macAddress.split(':')

    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)
                        )

    packet = '\xff' * 6 + hexMac * 16
    
    return packet

def sendPacket(packet, destIP, destPort = 7):
    s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.sendto(packet,(destIP,destPort))
    s.close()

port = 7

data = zip(mac,ip)

for MacAd, MachineIP in data:
    try:
        MagicPacket = makeMagicPacket(MacAd)
        sendPacket(MagicPacket, MachineIP, port)
        print('Packet successfully sent to %s'%(MacAd))
    except Exception as e:
        print("failed to send MagicPacket to macAddress: %s, IP: %s"%(MacAd, MachineIP))
        print(e)