python簡單的監控腳本-利用socket、psutil阻止遠程主機運行特定程序


python簡單的監控腳本-利用socket、psutil阻止遠程主機運行特定程序

psutil是一個跨平台的庫(http://code.google.com/p/psutil/),能夠輕松的實現獲取系統運行的進程和系統利用率(CPU、內存、磁盤、網絡等)信息。它主要應用於系統監控,分析和限制系統資源及進程的管理。

psutil是第三方庫需要安裝。pip install psutil

利用socket,psutil實現阻止遠程主機運行特定的程序,本例的黑名但是直接寫死的,也可以加載一個黑名單文件,方便以后擴展

客戶端:

#控制進程,客戶端
import sys import psutil import socket import time server=sys.argv[1] s=socket.socket() while 1: try: s.connect((server,1234)) #建立tcp連接
        break
    except: time.sleep(5) data=s.recv(1024).decode() #接收服務器發送的黑名單
blacklist=data.split(",")  #str-->list
print(blacklist) s.close() #接受到黑名單,關閉資源

while 1: pids=psutil.pids()    #pids所有進程的進程id (list)
    for i in pids: try: if psutil.Process(i).name() in blacklist:   #psutil.Process().name() 進程ID對應的程序名
                psutil.Process(i).terminate()   #terminate 關閉程序
        except: pass time.sleep(1)        

服務端:

##控制進程,服務端
import sys import psutil import socket import time from threading import Thread s=socket.socket() s.bind(("0.0.0.0",1234)) s.listen(5) blacklist=['Calculator.exe','QQ.exe'] msg=','.join(blacklist) def tcplink(sock,addr): #把黑名單發送給客戶端
 sock.send(msg.encode()) print(addr,'OK!') sock.close() while 1: con,addr=s.accept() ts=[] t=Thread(target=tcplink,args=(con,addr))   #創建線程來處理tcp連接
 ts.append(t) t.start() for i in ts: i.join()

測試:

運行QQ和計算器,發現剛運行就被關閉了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM