Python 實現局域網遠程屏幕截圖

最近各地中小學都在開展線上教學,有些不自覺的小朋友們用電腦在線學習的時候會趁家長不在的時候偷偷玩遊戲、看漫畫。
本程序screenshot.py就是用來監控學生機(windows系統)屏幕活動的一個小腳本。
首先在學生機上安裝python3環境。另外需要安裝pyautogui:

pip install pyautogui

學生機啓動後臺進程方法:在學生機上建立一個批處理文件,用無窗口python運行命令,以下根據你自己的python安裝位置和腳本所在文件夾調整。。

c:\python37\pythonw.exe d:\py\screenshot.py 1>1.txt 2>2.txt
from http.server import BaseHTTPRequestHandler, HTTPServer
import pyautogui, socket
# for windows, screenshot.py
# 家長監控地址: http://192.168.1.3:8009/
PORT = 8008
# 獲取學生機局域網地址
IP = socket.gethostbyname(socket.gethostname())
#windows
class myHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        img = pyautogui.screenshot() #屏幕截圖
        if img:
            self.send_response(200) #HTTP 狀態碼
            self.send_header('Content-Type', 'image/png')
            self.end_headers()
            img.save(self.wfile, 'PNG') # 寫入HTTP 響應流文件

def main():
    try:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        #判斷當前端口是否已經打開
        result = sock.connect_ex((IP, PORT))
        portopen = result == 0
        sock.close()
        if not portopen:
            #啓動web服務器,用自定義的響應處理類
            server = HTTPServer((IP, PORT), myHandler)
            server.serve_forever() # 服務器持續監聽
    except:
        pass

if __name__ == '__main__':
    main()

WIFI環境下,在家長機器或手機瀏覽器中輸入下面的網址(假設學生機IP爲192.168.1.3):

http://192.168.1.3:8008/

就可看到學生當前的屏幕活動。可刷新。
人生苦短,我用Python.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章