python简单的监控脚本-利用socket、psutil阻止远程主机运行特定程序

获取系统运行的进程和系统利用率(cpu、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。

文件,方便以后扩展

server=sys.argv[1<span style="color: #000000;">]
s
=<span style="color: #000000;">socket.socket()
<span style="color: #0000ff;">while
1<span style="color: #000000;">:
<span style="color: #0000ff;">try
<span style="color: #000000;">:
s.connect((server,
1234)) <span style="color: #008000;">#
<span style="color: #008000;">建立tcp连接

<span style="color: #0000ff;">break

<span style="color: #0000ff;">except<span style="color: #000000;">:
time.sleep(5<span style="color: #000000;">)

data=s.recv(1024).decode() <span style="color: #008000;">#<span style="color: #008000;">接收服务器发送的黑名单
blacklist=data.split(<span style="color: #800000;">"<span style="color: #800000;">,<span style="color: #800000;">") <span style="color: #008000;">#<span style="color: #008000;">str-->list
<span style="color: #0000ff;">print<span style="color: #000000;">(blacklist)
s.close() <span style="color: #008000;">#<span style="color: #008000;">接受到黑名单,关闭资源

<span style="color: #0000ff;">while 1<span style="color: #000000;">:
pids=psutil.pids() <span style="color: #008000;">#<span style="color: #008000;">pids所有进程的进程id (list)
<span style="color: #0000ff;">for i <span style="color: #0000ff;">in<span style="color: #000000;"> pids:
<span style="color: #0000ff;">try<span style="color: #000000;">:
<span style="color: #0000ff;">if psutil.Process(i).name() <span style="color: #0000ff;">in blacklist: <span style="color: #008000;">#<span style="color: #008000;">psutil.Process().name() 进程ID对应的程序名
psutil.Process(i).terminate() <span style="color: #008000;">#<span style="color: #008000;">terminate 关闭程序
<span style="color: #0000ff;">except<span style="color: #000000;">:
<span style="color: #0000ff;">pass<span style="color: #000000;">
time.sleep(1)

服务端:

threading =,12345=[,=<span style="color: #0000ff;">def tcplink(sock,addr): <span style="color: #008000;">#<span style="color: #008000;">把黑名单发送给客户端
<span style="color: #000000;"> sock.send(msg.encode())
<span style="color: #0000ff;">print
(addr,<span style="color: #800000;">'
<span style="color: #800000;">OK!
<span style="color: #800000;">'
<span style="color: #000000;">)
sock.close()
<span style="color: #0000ff;">while
1<span style="color: #000000;">:
con,addr
=<span style="color: #000000;">s.accept()
ts
=<span style="color: #000000;">[]
t
=Thread(target=tcplink,args=(con,addr)) <span style="color: #008000;">#
<span style="color: #008000;">创建线程来处理tcp连接

<span style="color: #000000;"> ts.append(t)
t.start()
<span style="color: #0000ff;">for
i <span style="color: #0000ff;">in
<span style="color: #000000;"> ts:
i.join()

测试:

运行QQ和计算器,发现刚运行就被关闭了。

相关文章

在这篇文章中,我们深入学习了XPath作为一种常见的网络爬虫技巧。XPath是一种用于定位和选择XML文档中特...
祝福大家龙年快乐!愿你们的生活像龙一样充满力量和勇气,愿你们在新的一年里,追逐梦想,勇往直前,不...
今天在爬虫实战中,除了正常爬取网页数据外,我们还添加了一个下载功能,主要任务是爬取小说并将其下载...
完美收官,本文是爬虫实战的最后一章了,所以尽管本文着重呈现爬虫实战,但其中有一大部分内容专注于数...
JSON是一种流行的数据传输格式,Python中有多种处理JSON的方式。官方的json库是最常用的,它提供了简单...
独立样本T检验适用于比较两组独立样本的均值差异,而配对T检验则适用于比较同一组样本在不同条件下的均...