li0544 发表于 2016-6-4 09:27:35

唤醒局域网中的电脑(WOL)

# -*- coding=utf8 -*-
import socket
import struct
def WOL(macaddress):
    if len(macaddress) == 12:
      pass
    elif len(macaddress) == 12 + 5:
      sep = macaddress
      macaddress = macaddress.replace(sep, '')
    else:
      raise ValueError('Incorrect MAC address format')
    data = ''.join(['FFFFFFFFFFFF', macaddress * 16])
    send_data = b''
    for i in range(0, len(data), 2):
      byte_dat = struct.pack('B', int(data, 16))
      send_data = send_data + byte_dat
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    sock.sendto(send_data, ('255.255.255.255', 7))
    sock.close()
   
if __name__ == '__main__':
    WOL('6C626D4EF0B2')
页: [1]
查看完整版本: 唤醒局域网中的电脑(WOL)