Python Ethical Hacking - NETWORK_SCANNER(2)
DICTIONARIES
- Similar to lists but use key instead of an index.
LISTS
- List of values/elements, all can be stored in one variable.
Improving the Program Using a List of Dictionaries:
#!/usr/bin/env python import scapy.all as scapy def scan(ip): arp_request = scapy.ARP(pdst=ip) broadcast = scapy.Ether(dst="ff:ff:ff:ff:ff:ff") arp_request_broadcast = broadcast/arp_request answered_list = scapy.srp(arp_request_broadcast, timeout=1, verbose=False)[0] clients_list = [] for element in answered_list: clients_dict = {"ip": element[1].psrc, "mac": element[1].hwsrc} clients_list.append(clients_dict) return clients_list def print_result(results_list): print("IP\t\t\tMAC Address\n------------------------------------------") for client in results_list: print(client["ip"] + "\t\t" + client["mac"]) scan_result = scan("10.0.0.1/24") print_result(scan_result)
Result:
Complete the Python code:
#!/usr/bin/env python import scapy.all as scapy import argparse def get_arguments(): parser = argparse.ArgumentParser() parser.add_argument("-t", "--target", dest="target", help="Target IP / IP range.") options = parser.parse_args() return options def scan(ip): arp_request = scapy.ARP(pdst=ip) broadcast = scapy.Ether(dst="ff:ff:ff:ff:ff:ff") arp_request_broadcast = broadcast/arp_request answered_list = scapy.srp(arp_request_broadcast, timeout=1, verbose=False)[0] clients_list = [] for element in answered_list: clients_dict = {"ip": element[1].psrc, "mac": element[1].hwsrc} clients_list.append(clients_dict) return clients_list def print_result(results_list): print("IP\t\t\tMAC Address\n------------------------------------------") for client in results_list: print(client["ip"] + "\t\t" + client["mac"]) options = get_arguments() scan_result = scan(options.target) print_result(scan_result)
相信未来 - 该面对的绝不逃避,该执著的永不怨悔,该舍弃的不再留念,该珍惜的好好把握。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步