返回

解放双手:巧用Python脚本,打造远程唤醒台式机智能监控系统

后端

使用Python打造智能监控系统,守护你的远程唤醒台式机

在拥有常年休眠的台式机并启用Wake On Lan (WOL)进行远程唤醒时,难免会遇到这样的烦恼:台式机时不时被不知名的原因唤醒,让你全然不知情。这样的情况通常发生在深夜或凌晨,当你已进入梦乡之时。一台孤独的电脑在黑暗中独自工作,不仅耗费电能,还可能存在安全隐患。

为了解决这个令人抓狂的问题,你可以打造一套智能监控系统,实现电脑唤醒后自动拍照、截屏并发邮件通知。这套系统将持续监控台式机的唤醒状态,一旦检测到唤醒,它就会立即执行预设的操作,让你及时了解台式机的异动。

核心原理

智能监控系统的核心原理很简单:

  1. 持续监听台式机的唤醒状态 :系统使用WOL库来监听台式机的WOL信号,当检测到信号时,系统会立即做出反应。
  2. 自动执行预设的操作 :一旦检测到唤醒,系统将立即执行预设的操作,包括拍照、截屏和发送邮件通知。

所需工具

打造智能监控系统需要以下工具:

  • Python 3.x
  • wakeonlan库
  • pyautogui库
  • smtplib库
  • 一个免费的邮箱账户

脚本实现

以下是Python脚本的实现:

import wakeonlan
import pyautogui
import smtplib

# 你的台式机的MAC地址
mac_address = "00:11:22:33:44:55"

# 你的电子邮件地址
sender_email = "example@gmail.com"

# 你的电子邮件密码
sender_password = "password"

# 收件人电子邮件地址
receiver_email = "example@gmail.com"

# 邮件主题
subject = "台式机唤醒通知"

# 邮件正文
body = "你的台式机已于[时间]被唤醒。请注意检查!"

# 检测台式机是否被唤醒
def check_wakeonlan():
    if wakeonlan.ping(mac_address):
        return True
    else:
        return False

# 拍照
def take_screenshot():
    screenshot = pyautogui.screenshot()
    screenshot.save('screenshot.png')

# 发送电子邮件通知
def send_email():
    message = """From: {}
    To: {}
    Subject: {}

    {}""".format(sender_email, receiver_email, subject, body)

    try:
        server = smtplib.SMTP('smtp.gmail.com', 587)
        server.starttls()
        server.login(sender_email, sender_password)
        server.sendmail(sender_email, receiver_email, message)
        server.quit()
        print("邮件发送成功!")
    except:
        print("邮件发送失败!")

# 主函数
def main():
    while True:
        if check_wakeonlan():
            take_screenshot()
            send_email()

if __name__ == '__main__':
    main()

部署脚本

  1. 将脚本保存为Python文件,例如"wakeonlan_monitor.py"。
  2. 在命令行中切换到脚本所在的目录。
  3. 输入以下命令运行脚本:
python wakeonlan_monitor.py

脚本将开始运行,并持续监听台式机的唤醒状态。一旦检测到台式机被唤醒,脚本将自动拍照、截屏并发邮件通知你。

注意事项

  1. 确保你的台式机支持Wake On Lan功能。
  2. 确保你的路由器或网关支持Wake On Lan功能。
  3. 确保你的电脑和手机连接在同一个局域网内。
  4. 确保你的邮箱设置允许第三方应用发送邮件。

常见问题解答

1. 为什么我的台式机没有被唤醒?

  • 确保台式机支持WOL功能。
  • 确保路由器或网关支持WOL功能。
  • 确保台式机和手机连接在同一个局域网内。

2. 为什么我没有收到邮件通知?

  • 确保你的邮箱设置允许第三方应用发送邮件。
  • 检查你的垃圾邮件文件夹,邮件可能被误认为垃圾邮件。

3. 如何更改邮件主题和正文?

  • 在脚本中找到"subject"和"body"变量,并修改它们的值。

4. 如何更改拍照的保存位置?

  • 在脚本中找到"take_screenshot()"函数,并修改"screenshot.save('screenshot.png')"行中的保存位置。

5. 如何添加更多的操作,比如录制视频或播放声音?

  • 可以使用pyautogui库添加更多的操作,例如录制视频或播放声音。请查阅pyautogui库的文档了解详细信息。

结语

通过这套智能监控系统,你可以轻松监控台式机的唤醒状态,并及时了解台式机被唤醒的情况。再也不用担心台式机被其他情况唤醒而你却不知情了。你可以安心地进入梦乡,让这套系统为你守护你的台式机,及时向你发送警报,让你在第一时间掌握台式机的异动情况。