2012-01-12 49 views
0

我想用python制作一个程序,它监视我的浏览和下载数据,并显示我在一天(或在给定的时间间隔内)下载了多少数据。用python监视我的下载用法

我不想要我下载的内容,我只需要知道我下载和/或浏览了多少数据(数据量)。

对于那个我应该访问端口或其他东西?
我该如何继续?

编辑:我使用的是Ubuntu 11.10。

+1

你的意思是“保持我的浏览和下载数据上的标签?”,也许描述一个具体的用例会有所帮助。 – MatToufoutu 2012-01-12 09:07:55

+0

我只需要我下载的数据量。 – Froyo 2012-01-12 09:14:15

+0

这将取决于平台,您应该添加您的平台的描述 – 2012-01-12 09:18:28

回答

0

我了解如何监视我的下载的基本想法。我基本上把数据包的数据加起来

#!/usr/bin/python2.7 
    import pcap, dpkt, socket 

    pc = pcap.pcap() 
    ports = (80, 8080, 888, 443) 

    def process(): 
     mem = 0 
     sport = 0 
     dport = 0 
     try: 
     for ts, pkt in pc: 
      eth = dpkt.ethernet.Ethernet(pkt) 
      ip = eth.data 

      if ip.__class__ == dpkt.ip.IP: 
      ip1, ip2 = map(socket.inet_ntoa, [ip.src, ip.dst]) 
      if ip.p == 6: 
       I7 = ip.data 
       sport, dport = [I7.sport, I7.dport] 
      if sport in ports or dport in ports: 
       if len(data) > 0: 
       print 'From %s to %s, length: %d' %(ip1, ip2, len(I7.data)) 
       mem = mem + len(I7.data) 
    except KeyboardInterrupt: 
     return mem 

    def main(): 
     mem = process() 
     print float(mem/(1024*1024)), 'mb' 
     return 

    if __name__ == '__main__': 
     main() 

这打印源ip,dest ip,包的长度,直到keybaordinterrupt提供。

+0

http://jayrambhia.wordpress.com/2012/01/12/monitor-your-browsingdownloading-data-via-python/ – Froyo 2012-01-12 21:15:27