登录|立即注册
论坛 > Python
发帖|
看12405|回0|收藏
li0544 看全部
2016-6-4 09:27:35

代码:

  1. # -*- coding=utf8 -*-
  2. import socket
  3. import struct
  4. def WOL(macaddress):
  5.     if len(macaddress) == 12:
  6.         pass
  7.     elif len(macaddress) == 12 + 5:
  8.         sep = macaddress[2]
  9.         macaddress = macaddress.replace(sep, '')
  10.     else:
  11.         raise ValueError('Incorrect MAC address format')
  12.     data = ''.join(['FFFFFFFFFFFF', macaddress * 16])
  13.     send_data = b''
  14.     for i in range(0, len(data), 2):
  15.         byte_dat = struct.pack('B', int(data[i: i + 2], 16))
  16.         send_data = send_data + byte_dat
  17.     sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  18.     sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
  19.     sock.sendto(send_data, ('255.255.255.255', 7))
  20.     sock.close()
  21.    
  22. if __name__ == '__main__':
  23.     WOL('6C626D4EF0B2')

orange pi.

Powered by Discuz! X3.4

首页|简易版|触屏版|电脑版