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写的一个监控系统进程网络流量的程序相关推荐

  1. python饮料购买_Python写的一个自动售饮料小程序!

    写这个程序的时候,我已学习Python将近有一百个小时,在CSDN上看到有人求助使用Python如何写一个自动售饮料的程序,我一想,试试写一个实用的售货程序.当然,只是实现基本功能,欢迎高手指点,新手 ...

  2. C语言时间管理小程序,写了一个时间管理的微信小程序

    原标题:写了一个时间管理的微信小程序 前言 以前看过<把时间当作朋友>这本书,里面有个管理时间的观点个人觉得很有用,就是养成记录自己每天的时间消耗的一个习惯,这样有助于更有效地管理自己的时 ...

  3. python网络监控程序_python linux监控程序

    Pyinotify – Linux中实时监控文件系统更改 Pyinotify 是一个简单而实用的 Python 模块,它用于通过 inotify 实时监控Linux文件系统的更改.用于在Linux中实 ...

  4. pythonjava app切出后无网络连接_写了一个java的Server 用python的client访问却访问不通问题。...

    首先给出这个java的Server代码 try{//1.创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口 ServerSocket serverSocket=ne ...

  5. python做数据库压力测试_Python 写的一个MongoDB压力测试

    Python 写的一个MongoDB压力测试 $ pip install pymongo #!/usr/bin/env python #coding=utf-8 #Author: Ca0Gu0 fro ...

  6. python arp脚本_Python scapy 实现一个简易 arp 攻击脚本

    scapy是python写的一个功能强大的交互式数据包处理程序,可用来发送.嗅探.解析和伪造网络数据包,常常被用到网络攻击和测试中. scapy的安装在Linux非常便利,但在Windows下比较复杂 ...

  7. python实时定位_Python实现命令行监控北京实时公交之一

    开头先放上效果展示 在命令行输入 python bus.py -i,显示app基本信息,如下: 在命令行输入 python bus.py 438,显示北京438路公交车的位置,如下: 红色的B说明在梅 ...

  8. python长整数相乘_python写的大整数相乘的方法

    输入 72106547548473106236 982161082972751393 两个大整数 输出结果 70820244829634538040848656466105986748 解题思路 首先 ...

  9. python远程聊天_Python实现多人在线匿名聊天的小程序

    最近看到好多设计类网站,都提供了多人在线匿名聊天的小功能,感觉很有意思,于是基于python的django框架自己写了一个,支持手动实时更名,最下方提供了完整的源码. 在线聊天地址(无需登录,开一个窗 ...

最新文章

  1. python装饰器-如何理解Python装饰器?
  2. 自顶向下彻底理解 Java 中的 Synchronized
  3. linux 7 没有权限访问,技术|RHCSA 系列(十三): 在 RHEL 7 中使用 SELinux 进行强制访问控制...
  4. 【练习】c++删除链表倒数第K个结点和 插入排序算法将单链表递增排序
  5. php strchr和strrchr,strrchr与Strchr
  6. howdoi 简单分析
  7. ×××背景知识技术介绍
  8. eclipse创建maven项目的创建
  9. Python--网络编程-----通过socket收发文件软件开发--面向对象开发
  10. 李开复:无人驾驶必须一步到位,没有所谓的人机协同
  11. 求邻接矩阵matlab,如何使用MATLAB绘制邻接矩阵
  12. 基于C语言及51单片机的PID控制电机调速详解(附详细代码及Protsus仿真)
  13. c语言学生学籍查询流程图,C语言学生学籍管理系统
  14. setPositiveButton和setNegativeButton的区别
  15. Vue CLI脚手架安装及使用
  16. 史上最搞笑的程序员段子,有图有真相!
  17. 30岁零基础自学编程,先学哪种语言最好?
  18. 第二届“大数据在清华”高峰论坛,敬请期待!
  19. 【Java并发】Java并发编程-02
  20. Python使用随机森林预测泰坦尼克号生存

热门文章

  1. PPT素材 + 手机怎么玩洛克王国(flash游戏)
  2. 最新仿猪八戒威客系统源码网整站源码下载
  3. 含文档+PPT+源码等]精品基于SSM的图书管理系统[包运行成功]
  4. ArcGIS环境搭建及地图服务发布
  5. 如何理解当代中国----《十亿消费者》摘录(转)
  6. css玻璃雨滴效果,CSS实现雨滴动画效果的实例代码
  7. 201421123042 《Java程序设计》第11周学习总结
  8. scapy python3_【Python3黑帽子学习笔记 on Mac】第四章 Scapy:网络的掌控者
  9. Cesium基本使用,包括加载影像,地形,模型等,设置地图样式
  10. 一行代码可以做什么?