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框架自己写了一个,支持手动实时更名,最下方提供了完整的源码. 在线聊天地址(无需登录,开一个窗 ...
最新文章
- python装饰器-如何理解Python装饰器?
- 自顶向下彻底理解 Java 中的 Synchronized
- linux 7 没有权限访问,技术|RHCSA 系列(十三): 在 RHEL 7 中使用 SELinux 进行强制访问控制...
- 【练习】c++删除链表倒数第K个结点和 插入排序算法将单链表递增排序
- php strchr和strrchr,strrchr与Strchr
- howdoi 简单分析
- ×××背景知识技术介绍
- eclipse创建maven项目的创建
- Python--网络编程-----通过socket收发文件软件开发--面向对象开发
- 李开复:无人驾驶必须一步到位,没有所谓的人机协同
- 求邻接矩阵matlab,如何使用MATLAB绘制邻接矩阵
- 基于C语言及51单片机的PID控制电机调速详解(附详细代码及Protsus仿真)
- c语言学生学籍查询流程图,C语言学生学籍管理系统
- setPositiveButton和setNegativeButton的区别
- Vue CLI脚手架安装及使用
- 史上最搞笑的程序员段子,有图有真相!
- 30岁零基础自学编程,先学哪种语言最好?
- 第二届“大数据在清华”高峰论坛,敬请期待!
- 【Java并发】Java并发编程-02
- Python使用随机森林预测泰坦尼克号生存
热门文章
- PPT素材 + 手机怎么玩洛克王国(flash游戏)
- 最新仿猪八戒威客系统源码网整站源码下载
- 含文档+PPT+源码等]精品基于SSM的图书管理系统[包运行成功]
- ArcGIS环境搭建及地图服务发布
- 如何理解当代中国----《十亿消费者》摘录(转)
- css玻璃雨滴效果,CSS实现雨滴动画效果的实例代码
- 201421123042 《Java程序设计》第11周学习总结
- scapy python3_【Python3黑帽子学习笔记 on Mac】第四章 Scapy:网络的掌控者
- Cesium基本使用,包括加载影像,地形,模型等,设置地图样式
- 一行代码可以做什么?