本文整理汇总了Python中scapy.utils.RawPcapReader方法的典型用法代码示例。如果您正苦于以下问题:Python utils.RawPcapReader方法的具体用法?Python utils.RawPcapReader怎么用?Python utils.RawPcapReader使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类scapy.utils
的用法示例。
在下文中一共展示了utils.RawPcapReader方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: order_test
# 需要导入模块: from scapy import utils [as 别名]
# 或者: from scapy.utils import RawPcapReader [as 别名]
def order_test(self, attack_args, seed=None, cleanup=True, pcap=Lib.test_pcap,
flag_write_file=False, flag_recalculate_stats=False, flag_print_statistics=False,
attack_sub_dir=True, test_sub_dir=True):
"""
Checks if the result of an attack includes all packets in correct order.
:param attack_args: A list of attacks with their attack parameters (as defined in Controller.process_attacks).
:param seed: A random seed to keep random values static (care for count and order of random generation).
:param cleanup: Clean up attack output after testing.
:param pcap: The input pcap for the attack.
:param flag_write_file: Writes the statistics to a file.
:param flag_recalculate_stats: Forces the recalculation of statistics.
:param flag_print_statistics: Prints the statistics on the terminal.
:param attack_sub_dir: create sub-directory for each attack-class if True
:param test_sub_dir: create sub-directory for each test-function/case if True
"""
controller = Ctrl.Controller(pcap_file_path=pcap, do_extra_tests=False, non_verbose=True)
controller.load_pcap_statistics(flag_write_file, flag_recalculate_stats, flag_print_statistics,
intervals=[], delete=True)
controller.process_attacks(attack_args, [[seed]])
caller_function = inspect.stack()[1].function
try:
path = controller.pcap_dest_path
file = pcr.RawPcapReader(path)
packet_a = file.read_packet()
packet_b = file.read_packet()
i = 0
while packet_b is not None:
time_a = [packet_a[1].sec, packet_a[1].usec]
time_b = [packet_b[1].sec, packet_b[1].usec]
if time_a[0] > time_b[0]:
file.close()
self.fail("Packet order incorrect at: " + str(i + 1) + "-" + str(i + 2) +
". Current time: " + str(time_a) + " Next time: " + str(time_b))
elif time_a[0] == time_b[0]:
if time_a[1] > time_b[1]:
file.close()
self.fail("Packet order incorrect at: " + str(i + 1) + "-" + str(i + 2) +
". Current time: " + str(time_a) + " Next time: " + str(time_b))
packet_a = packet_b
packet_b = file.read_packet()
i += 1
file.close()
except self.failureException:
Lib.rename_test_result_files(controller, caller_function, attack_sub_dir, test_sub_dir)
raise
if cleanup:
Lib.clean_up(controller)
else:
Lib.rename_test_result_files(controller, caller_function, attack_sub_dir, test_sub_dir)