Amazing-Python-Scripts
50 строк · 1.5 Кб
1try:
2import scapy.all as scapy
3import optparse
4except ImportError:
5print("[+] packages not installed ")
6print("try-> pip install scapy")
7print("pip install optparse-pretty")
8
9
10def get_arguments(): # function to pass input in console
11parser = optparse.OptionParser()
12parser.add_option("-t",
13"--target",
14dest="target",
15help="Target IP / IP range.")
16options, arguments = parser.parse_args()
17return options
18
19
20def scan(ip):
21arp_request = scapy.ARP(pdst=ip) # destinationn ip
22broadcast = scapy.Ether(dst="ff:ff:ff:ff:ff:ff")
23arp_request_broadcast = broadcast / arp_request
24# print(arp_request_broadcast.summary())
25# arp_request_broadcast.show()
26answered_list = scapy.srp(arp_request_broadcast, timeout=1,
27verbose=False)[0]
28# print(answered_list.summary())
29# print(unanswered.summary())
30
31clients_list = []
32for element in answered_list:
33clients_dict = {"ip": element[1].psrc, "mac": element[1].hwsrc}
34clients_list.append(clients_dict)
35# print(element[1].psrc +"\t\t"+element[1].hwsrc)
36
37return (clients_list)
38
39
40def print_result(result_list):
41print(
42"IP\t\t\tMAC ADDRESS\n.........................................................................."
43)
44for client in result_list:
45print(client["ip"] + "\t\t" + client["mac"])
46
47
48options = get_arguments()
49scan_result = scan(options.target)
50print_result(scan_result)
51