日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python实现对电脑的全程监控

發布時間:2024/3/13 python 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python实现对电脑的全程监控 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先聲明一下:該點子非本人原創,我只是用它在Mac OS X上給出了實現。

需要三個文件,被發布在本人的GitHub上,有需要或想了解的請自行參考。

簡單介紹下三個文件分別的作用:

pcMonitor.py--Python程序文件,用于實現開機監控以及強制關機的處理邏輯

com.yanghua.pcMonitorService.plist--Apple Mac OS X對于想要開機啟動程序的描述文件。(在windows 上可能稱之為開機啟動計劃)

pcMonitorService.sh--在com.yanghua.pcMonitorService.plist中描述的,需要被直接執行的程序。(系統開機自執行程序不支持直接執行Python腳本,所以通過執行執行該sh腳本,在該sh腳本中間接執行pcMonitor.py腳本)。

實現功能

(1)開機未登錄 郵件自動提醒

(2)開機登陸后 郵件自動提醒

(3)回復提醒郵件以“shutdown”,則被開啟的Mac 機器會被強制關閉

無論是否連接互聯網:

(4)支持開機后,以一定的頻率定時截取當前屏幕作為圖像日志

備注:這些功能對于個人電腦常被借用、公用來說非常有用,便于個人對自己電腦的使用有即時了解。

原理簡介

其實很簡單,想要在手機和電腦之間產生交互,需要兩個條件: (1)連接 ?這個只能依賴于互聯網了 (2)通信 通信離不開協議,這里選擇的話,雙方都可識別的,并且操作簡便的,沒有比通過郵件來實現更好的選擇了。 上面提到了,com.yanghua.pcMonitorService.plist該文件用于使得該監控程序開機自動啟動,它會間接執行pcMonitor.py腳本。該腳本被執行之后,將開啟一個輪詢程序。如果碰巧,它開完機就自動連接上了互聯網,那么它將直接給你預留的郵箱中發送郵件,如果沒有,在你發送郵件就會產生程序異常,此處異常被直接吞噬,只返回Boolean標示,休眠一段時間,繼續發送,直到機器聯網發送成功為止。為了達到即時的目的,你可能需要借助手機的某些工具(比如在手機的微信中開啟QQ郵箱提醒功能,如果你沒有QQ郵箱,那么其它郵件提供商很多也跟運營商進行了合作支持了郵箱與手機號碼的綁定,這樣在收到郵件的時候就可以支持短信提醒)。 至此發送結束,那么下面會進入接收郵件的偵聽模式。當接收到標題為郵件提醒時發送的郵件標題(因為關機指令只需回復提醒郵件),并且郵件內容包含shutdown關鍵字的時候。將會執行關機命令: 關鍵代碼: if __name__ == '__main__':init()MAIL_TXT = "the computer has started %s" % time.strftime(' at %c')while True:if send_mail(MAIL_TITLE, MAIL_TXT):breakelse:time.sleep(60)while True:shutdown=receive_mail()if shutdown:shutdown_cmd ="shutdown -h now"print(shutdown_cmd)process=subprocess.Popen(shutdown_cmd, shell=True, universal_newlines=True, stdout=subprocess.PIPE)process.wait()else:print("sleep")time.sleep(60) #sleep 60s

如何使其開機自動啟動?

首先,需要編寫開機啟動程序的描述文件。 請參考: mac os 下設置開機自啟動服務 文件需要放到/Library/下(通過快捷鍵:shift+Command+G):
進入后,有兩個相關的文件夾:
主要相關的文件夾就是這兩個,但有什么區別呢? LaunchAgents--存放在開機并登陸之后才會執行的計劃任務 LaunchDaemons--存放在開機之后就會執行的計劃任務 注:這兩個文件夾的區別,也是我上面“實現功能”中的(1)、(2)兩點的關鍵點,這就是取決于你將那個任務描述文件放在哪個文件夾內。 你可以直接將com.yanghua.xxx.plist文件直接拖放至兩個文件夾的其中之一。因為該文件夾其實是系統相關的文件,所以需要授予其權限,所以在你拖放過程中可能需要輸入密碼。 或者,通過在Terminal中,通過cp命令來拷貝文件:
上面同時把其他的兩個文件放到/usr/local/文件夾下,他們同樣是系統相關文件,需要你在命令前加上“sudo”,同時有可能會要求鍵入password。 在操作某些系統級別相關的文件夾中的文件時,非超級管理員用戶(root用戶)可能沒有執行權限,而在我們的程序里,我們程序的執行者其實就是當前登陸用戶(因為它在用戶登陸成功后,以其身份執行),而它肯定不是超級管理員。所以,必須為pcMonitorService.sh文件授予“其他用戶可執行的權限”:
至此,大部分任務都完成了,還有一個非常關鍵的問題。回復的郵件:shutdown,其實只是一個給監控程序執行關機指令的“關鍵字”,它在程序里,卻會真正執行shutdown的shell命令。眾所周知,shutdown默認情況下只可以被root用戶執行,其他用戶是沒有權限執行shutdown命令的。 所以需要兩個步驟來給予其他用戶以shutdown命令的執行權限: (1)修改sudoers文件,執行命令sudo visudo
進入之后,按“i”進入編輯狀態,修改最后一行:
為: 去掉最前面的#號,將users修改為你想執行監控腳本的用戶名,比如:yanghua 然后為shutdown設置suid:
以上設置完成之后,基本上大功告成了! 關于代碼,你還需要作一些修改,主要是關于pcMonitor中的,因為必須要你自己提供關于郵件地址相關的內容: #TODO: change the e-mail address which you want to comunicate with monitor MAIL_LIST = ["XXXXXX@qq.com"]#TODO: change the smtp/pop3 server which will serve for the monitor MAIL_HOST = "smtp.exmail.qq.com" MAIL_POP = "pop.exmail.qq.com"#TODO: change the email-addr and pwd which the monitor will use MAIL_USER = "xxxx@qq.com" MAIL_PASS = "xxxxxxxxxx" MAIL_FROM = "xxxx@qq.com"

寫在最后

由于很久不使用windows的原因(而且windows上也沒有安裝Python),所以只是給出了Mac OS X上的實現,其實該實現與所有Free BSD系統的實現都是類似的。只有開機啟動程序的實現方式不一樣。所以在其他平臺只需讓該程序開機執行即可。 你會告訴我?如果用戶不聯網,是不是就沒有辦法了。就目前來看確實是必須要聯網才能實現上面的功能,但該程序只要電腦被開啟就會不停地允許直到用戶關閉,或者聯網,如果某人想做什么操作,在未聯網狀態下進行,而你想知道,你可以試圖獲取全局的鍵盤監聽事件、鼠標監聽事件,甚至可以以一定頻率的截屏來作為日志以進行保存!等到聯網時,這些日志都將可以作為郵件自動發送給你(因為普通用戶根本不知道你的這些幕后行為)。 最后,還是重申:不要惡意地使用你懂得的東西。否則后果自行負責!

總結

以上是生活随笔為你收集整理的Python实现对电脑的全程监控的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。