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. 学习计划20190509
  2. GOOGLE突破图书馆入口IP限制之技巧
  3. Linux - Nginx安装
  4. fekit前端代码模块化工具
  5. linux系统能安装到sdc上吗,如何安装linux系统
  6. 碎片化学习前端资料分享~
  7. Java进阶之光!javaunicode码转字符
  8. Android开发推荐资料大合集
  9. 485芯片方向切换的几种方式及原理
  10. 质量流量计测量液体与气体介绍
  11. [Elasticsearch] 邻近匹配 (一) - 短语匹配以及slop参数
  12. 记录 Spring Cloud GateWay 使用 路径与路由名字重复 出现的问题
  13. 想学.Net,只要功夫深,铁柱磨成针
  14. AVR单片机开发2——流水灯及仿真
  15. 笔记 GWAS 操作流程5-2:利用GEMMA软件进行LMM+PCA+协变量
  16. Paper笔记: 《LaVAN: Localized and Visible Adversarial Noise》
  17. 森林防火综合解决方案
  18. 意识篇 —— 抓不住的600(管理多余的心智宽带)
  19. The REBOL Scripting Language 读后感
  20. BigDecimal 两束运算 保留两位小数

热门文章

  1. 多个Repeater嵌套
  2. processing制作熊猫头像跟随鼠标拖尾
  3. 【001】基于JavaFX实现的电子图片管理系统
  4. 【2018 CodeM】资格赛---下单
  5. 解决虚拟机设置共享文件夹失败,/mnt目录为空
  6. 计算机专业英语第04章,2021计算机专业英语第四章
  7. 减少DOM的获取与修改次数
  8. 递归找到节点后跳出递归循环
  9. Socialbook告诉你网红营销和ROI的关系~
  10. 图形学初步--------种子填充算法