查看: 6497|回复: 0

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

[复制链接]

3

主题

9

帖子

86

积分

注册会员

Rank: 2

积分
86
QQ
发表于 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')
复制代码

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表