使用python监视我的下载使用情况

使用python监视我的下载使用情况,python,download,port,Python,Download,Port,我想用python编写一个程序,监控我的浏览和下载数据,并显示我一天(或给定时间间隔)下载了多少数据 我不想要我下载的东西,我只需要知道我下载和/或浏览了多少数据(数据量) 为此,我应该访问端口还是其他什么? 我应该如何进行 编辑:我正在使用Ubuntu 11.10。我对如何监控我的下载有了基本的了解。我基本上是把数据包的数据加起来 #!/usr/bin/python2.7 import pcap, dpkt, socket pc = pcap.pcap() p

我想用python编写一个程序,监控我的浏览和下载数据,并显示我一天(或给定时间间隔)下载了多少数据

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

为此,我应该访问端口还是其他什么?
我应该如何进行


编辑:我正在使用Ubuntu 11.10。

我对如何监控我的下载有了基本的了解。我基本上是把数据包的数据加起来

    #!/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、目的ip和包的长度,直到提供KeyBaorInterrupt

你所说的“保持我浏览和下载数据的标签”是什么意思?也许描述一个具体的用例会有所帮助。我只需要下载的数据量。这取决于平台,你应该添加一个平台描述