python网络监控程序_python写的一个监控系统进程网络流量的程序
python写的一个监控系统进程网络流量的程序,python2.7版本。 代码如下:
import socket
import struct
import thread
import threading
import time
import os
net_data = {}
d_net_info = {}
lock = threading.Lock()
def print_data():
while True:
lock.acquire()
for key in net_data:
print "%s %s\n"%(key, net_data[key])
lock.release()
time.sleep(5);
def get_net_info():
net_info = os.popen('netstat -nbo').readlines()
for l in net_info[4:]:
s = l.split()
if len(s)>2:
key = "%s %s"%(s[1],s[2])
key2 = "%s %s"%(s[2],s[1])
else:
if not d_net_info.has_key(key):
d_net_info[key] = s[0]
d_net_info[key2] = s[0]
def get_packet():
HOST = socket.gethostbyname(socket.gethostname())
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
s.bind((HOST, 0))
s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)
net_data["unknow"] = 0
while True:
buf = s.recvfrom(65565)
port = struct.unpack('HH', buf[0][20:24])
src_ip = "%d.%d.%d.%d"%struct.unpack('BBBB', buf[0][12:16])
dest_ip ="%d.%d.%d.%d"%struct.unpack('BBBB', buf[0][16:20])
src_port = socket.htons(port[0])
dest_port = socket.htons(port[1])
data_len = len(buf[0])
key="%s:%d %s:%d"%(src_ip,src_port,dest_ip,dest_port)
if not d_net_info.has_key(key):
get_net_info()
if d_net_info.has_key(key):
key2 ="%s %s"%(key,d_net_info[key])
if net_data.has_key(key2):
net_data[key2] =net_data[key2]+data_len
else:
net_data[key2] = data_len
else:
net_data["unknow"] =net_data["unknow"] + data_len
thread.start_new_thread(print_data,())
get_packet()
os.exit()
初学python,代码比较丑陋,可能效率和安全、稳定性方面也有很大问题,仅供初学者参考。
python网络监控程序_python写的一个监控系统进程网络流量的程序相关推荐
- python饮料购买_Python写的一个自动售饮料小程序!
写这个程序的时候,我已学习Python将近有一百个小时,在CSDN上看到有人求助使用Python如何写一个自动售饮料的程序,我一想,试试写一个实用的售货程序.当然,只是实现基本功能,欢迎高手指点,新手 ...
- C语言时间管理小程序,写了一个时间管理的微信小程序
原标题:写了一个时间管理的微信小程序 前言 以前看过<把时间当作朋友>这本书,里面有个管理时间的观点个人觉得很有用,就是养成记录自己每天的时间消耗的一个习惯,这样有助于更有效地管理自己的时 ...
- python网络监控程序_python linux监控程序
Pyinotify – Linux中实时监控文件系统更改 Pyinotify 是一个简单而实用的 Python 模块,它用于通过 inotify 实时监控Linux文件系统的更改.用于在Linux中实 ...
- pythonjava app切出后无网络连接_写了一个java的Server 用python的client访问却访问不通问题。...
首先给出这个java的Server代码 try{//1.创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口 ServerSocket serverSocket=ne ...
- python做数据库压力测试_Python 写的一个MongoDB压力测试
Python 写的一个MongoDB压力测试 $ pip install pymongo #!/usr/bin/env python #coding=utf-8 #Author: Ca0Gu0 fro ...
- python arp脚本_Python scapy 实现一个简易 arp 攻击脚本
scapy是python写的一个功能强大的交互式数据包处理程序,可用来发送.嗅探.解析和伪造网络数据包,常常被用到网络攻击和测试中. scapy的安装在Linux非常便利,但在Windows下比较复杂 ...
- python实时定位_Python实现命令行监控北京实时公交之一
开头先放上效果展示 在命令行输入 python bus.py -i,显示app基本信息,如下: 在命令行输入 python bus.py 438,显示北京438路公交车的位置,如下: 红色的B说明在梅 ...
- python长整数相乘_python写的大整数相乘的方法
输入 72106547548473106236 982161082972751393 两个大整数 输出结果 70820244829634538040848656466105986748 解题思路 首先 ...
- python远程聊天_Python实现多人在线匿名聊天的小程序
最近看到好多设计类网站,都提供了多人在线匿名聊天的小功能,感觉很有意思,于是基于python的django框架自己写了一个,支持手动实时更名,最下方提供了完整的源码. 在线聊天地址(无需登录,开一个窗 ...
最新文章
- 学习计划20190509
- GOOGLE突破图书馆入口IP限制之技巧
- Linux - Nginx安装
- fekit前端代码模块化工具
- linux系统能安装到sdc上吗,如何安装linux系统
- 碎片化学习前端资料分享~
- Java进阶之光!javaunicode码转字符
- Android开发推荐资料大合集
- 485芯片方向切换的几种方式及原理
- 质量流量计测量液体与气体介绍
- [Elasticsearch] 邻近匹配 (一) - 短语匹配以及slop参数
- 记录 Spring Cloud GateWay 使用 路径与路由名字重复 出现的问题
- 想学.Net,只要功夫深,铁柱磨成针
- AVR单片机开发2——流水灯及仿真
- 笔记 GWAS 操作流程5-2:利用GEMMA软件进行LMM+PCA+协变量
- Paper笔记: 《LaVAN: Localized and Visible Adversarial Noise》
- 森林防火综合解决方案
- 意识篇 —— 抓不住的600(管理多余的心智宽带)
- The REBOL Scripting Language 读后感
- BigDecimal 两束运算 保留两位小数