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