Контролировать мое использование загрузки с Python - PullRequest
0 голосов
/ 12 января 2012

Я хочу создать программу на python, которая отслеживает мой просмотр и загрузку данных и показывает, сколько данных я скачал за день (или за определенный промежуток времени).

Мне не нужно то, что я скачал, мне просто нужно знать, сколько данных (объем данных) я скачал и / или просмотрел.

Для этого я должен получить доступ к портам или что-то еще?
Как мне поступить?

Редактировать: Я использую Ubuntu 11.10.

1 Ответ

0 голосов
/ 12 января 2012

Я получил базовое представление о том, как контролировать мои загрузки. Я в основном беру данные пакетов и складываю их

    #!/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, длину пакета, пока не будет предоставлено ключевое прерывание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...