You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.4KB

  1. #!/usr/bin/env python
  2. import argparse
  3. import os
  4. import sys
  5. import math
  6. from scapy.all import *
  7. if __name__ == '__main__':
  8. parser = argparse.ArgumentParser(description='Plot two PCAP files')
  9. parser.add_argument('--client', metavar='<pcap file name>', help='pcap file to parse', required=True)
  10. parser.add_argument('--server', metavar='<pcap file name>', help='pcap file to parse', required=True)
  11. args = parser.parse_args()
  12. if not os.path.isfile(args.server):
  13. print('"{}" does not exist'.format(args.server), file=sys.stderr)
  14. sys.exit(-1)
  15. if not os.path.isfile(args.client):
  16. print('"{}" does not exist'.format(args.client), file=sys.stderr)
  17. sys.exit(-1)
  18. # calc owd
  19. packets_send = rdpcap(args.client)
  20. packets_rec = rdpcap(args.server)
  21. # check len
  22. PACKAGES = 4000
  23. if (not len(packets_send) >= PACKAGES) or (not len(packets_rec) >= PACKAGES):
  24. print("Nicht genug Pakete!")
  25. exit()
  26. owds = []
  27. for i in range(0, PACKAGES):
  28. owd = packets_rec[i].time - packets_send[i].time
  29. owds.append(owd)
  30. mittwelwert = sum(owds) / len(owds)
  31. varianz = 0
  32. for owd in owds:
  33. varianz = varianz + (owd - mittwelwert)**2
  34. varianz = varianz / len(owds)
  35. stdabw = math.sqrt(varianz)
  36. print("Mittelwert: " + str(mittwelwert))
  37. print("Varianz: " + str(varianz))
  38. print("Standardabweichung: " + str(stdabw))