代码拉取完成,页面将自动刷新
# -*- coding:utf-8 -*-
from flask import Flask, render_template, request, jsonify
import re
import socket
import struct
import main_wake_on_lan
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/wake', methods=['POST'])
def wake():
response = {}
try:
macParam = request.values.get('mac_addr')
if macParam == None:
raise ValueError
# if not check_mac(mac):
# raise ValueError
# wake_on_lan(mac)
mac = main_wake_on_lan.format_mac(macParam)
send_data = main_wake_on_lan.create_magic_packet(mac)
main_wake_on_lan.send_magic_packet(send_data)
print ('成功向' + macParam + '发送唤醒包!')
response['code'] = 1
response['message'] = '请求成功'
except ValueError:
response['code'] = 0
response['message'] = '请输入正确的MAC地址'
return jsonify(response)
# 检查mac地址
def check_mac(mac_addr):
# 长度检查
if len(mac_addr) == 12:
pass
elif len(mac_addr) == 17:
mac_addr = mac_addr.replace(':', '')
print(mac_addr)
else:
return False
# 正则检查
pattern = re.compile(r'[0-9A-Fa-f]{12}')
result = pattern.match(mac_addr)
if result is not None:
return True
else:
print("check fail")
return False
def wake_on_lan(mac):
if len(mac) == 12:
pass
elif len(mac) == 17:
macaddress = mac.replace(':', '')
else:
raise ValueError('mac地址有误')
data = 'FFFFFFFFFFFF' + mac * 16
byte_data = b''
for i in range(0, len(data), 2):
byte_dat = struct.pack('B', int(data[i: i + 2], 16))
byte_data = byte_data + byte_dat
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(byte_data, ('255.255.255.255', 7))
sock.close()
if __name__ == '__main__':
app.run(debug=False, port=5000, host='0.0.0.0')
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。