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